zoukankan      html  css  js  c++  java
  • springboot整合dubbo

    了解dubbo

    在这里插入图片描述
    后面被捐赠给了apache基金会,已经毕业了好像…官网:http://dubbo.apache.org/zh-cn/docs/user/quick-start.html
    官网介绍的很详细了,具体见官网上面的信息.

    引入依赖

    可以参考官方文档:
    https://github.com/apache/dubbo-spring-boot-project/blob/master/README_CN.md

       <!-- https://mvnrepository.com/artifact/org.apache.dubbo/dubbo-spring-boot-starter -->
            <dependency>
                <groupId>org.apache.dubbo</groupId>
                <artifactId>dubbo-spring-boot-starter</artifactId>
                <version>2.7.0</version>
            </dependency>
               <dependency>
                <groupId>org.apache.dubbo</groupId>
                <artifactId>dubbo</artifactId>
                <version>2.7.1</version>
            </dependency>
             <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-recipes</artifactId>
                <version>2.13.0</version>
            </dependency>
    

    编写服务提供模块

    我是在自己以前搭建的一个springboot模块项目里面搭建的…
    首先建一个接口模块,因为,服务的提供者和消费者都需要引入这个接口包,当然dubbo也可以通过泛化调用就不需要引入接口包了,那一块没过多了解,有兴趣的时候在弄好了.
    在这里插入图片描述
    随便建个方法,然后编写个provider,引入interface模块:写个TestDubboService接口的实现类:注意引入的包是dubbo的包.
    在这里插入图片描述

    import com.mr.interfaces.test.TestDubboService;
    import org.apache.dubbo.config.annotation.Service;
    import org.springframework.stereotype.Component;
    
    
    
    /**
     * @ClassName TestDubboServiceImpl
     * @Description dubbo测试接口的实现类
     * @Author stack
     * @Version 1.0
     * @since 2019/6/21 10:20
     */
    @Component
    @Service(version = "1.0",timeout = 10000,interfaceClass = TestDubboService.class)
    public class TestDubboServiceImpl implements TestDubboService {
    
        @Override
        public String testDubbo(String s) {
            return "dubbo测试接口的实现类";
        }
    }
    

    一般的话,privider里面依赖dao然后连接数据库等等,这里的话,就不这么干了,就按照官方demo写个简单的测试好了…然后启动报错:可能原因The bean ‘dubboConfigConfiguration.Single’, defined in null
    然后编写main方法:

    
    import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.SpringBootVersion;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    import java.time.Duration;
    import java.time.Instant;
    
    /**
     * 启动程序
     */
    @SpringBootApplication
    @EnableDubbo
    public class MyProjectApplication {
    
        private static final Logger log = LoggerFactory.getLogger(MyProjectApplication.class);
    
        public static void main(String[] args) {
            Instant inst1 = Instant.now();
            SpringApplication.run(MyProjectApplication.class, args);
            log.info("基于 Spring Boot {} ", SpringBootVersion.getVersion());
            log.info("启动成功!耗时:{}秒 ", Duration.between(inst1, Instant.now()).getSeconds());
        }
    
    }
    

    zk记得打开,启动成功

    编写服务消费模块

    原来的项目里面有web,我就直接写在web模块里面好了
    首先在web的pom里面引入dubbo接口包
    在这里插入图片描述
    然后在controller里面注入接口里面类:
    在这里插入图片描述
    服务消费者配置跟提供者配置差不多,注意我们使用的是注解,@Reference,引入的包import org.apache.dubbo.config.annotation.Reference;
    然后请求方法,成功了,注意,dubbo调用可以debug的.
    在这里插入图片描述
    不知道为啥使用apache-dubbo包总是要多导入curator-recipes这个包,这个包大概就是apache官方操作zk使用的包,然后dubbo如果使用zk作为注册中心,就需要引入这个包.
    记得引入:

     <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-recipes</artifactId>
                <version>2.13.0</version>
            </dependency>
    

    dubbo-admin安装

    参考我这篇博客:https://blog.csdn.net/qq_38366063/article/details/93302261
    然后访问,就可以看到对应的提供者消费者啦…
    在这里插入图片描述

    源码github上

    其实我喜欢引入springboot阿里巴巴dubbo…配置都差不多,省去一些错误好像.
    https://github.com/stackXu/springboot-study

    参考

    官网:http://dubbo.apache.org/zh-cn/docs/user/quick-start.html
    官方demo:https://github.com/apache/dubbo-spring-boot-project/tree/master/dubbo-spring-boot-samples
    博客:https://www.cnblogs.com/geekdc/p/9267341.html

    世界上所有的不公平都是由于当事人能力不足造成的.
  • 相关阅读:
    java json 库之 jackson
    java 多线程
    golang slice 和 string 重用
    golang 字节对齐
    golang 并发编程之生产者消费者
    golang 设计模式之选项模式
    golang aws-sdk-go 之 s3 服务
    markdown 一个优雅的写作工具
    常见句型、用法
    hg
  • 原文地址:https://www.cnblogs.com/javayida/p/13346935.html
Copyright © 2011-2022 走看看