Springboot整合dubbo2.7.7

Springboot整合dubbo2.7.7

  • pom.xml文件中添加依赖

        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>2.7.7</version>
        </dependency>
        
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-framework</artifactId>
            <version>4.0.1</version>
        </dependency>
    
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-recipes</artifactId>
            <version>2.8.0</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.10</version>
        </dependency>
    
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.4.10</version>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>log4j</groupId>
                    <artifactId>log4j</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    
        <dependency>
            <groupId>com.101tec</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.9</version>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    
  • 写application.properties配置文件

    spring.application.name=dubbo-test-provider
    dubbo.application.id=dubbo-test-provider
    dubbo.application.name=dubbo-test-provider
    dubbo.registry.address=zookeeper://192.168.1.140:2181
    dubbo.server=true
    dubbo.protocol.name=dubbo
    dubbo.protocol.port=20880
    server.port=8090

  • 启动类代码,记得加上@EnableDubbo,这个注解是配置dubbo扫描的包路径,没有注解的话记得在配置文件中加上dubbo的扫描路径

    @SpringBootApplication
    @EnableDubbo
    @Slf4j
    public class ProducerApplication {
    public static void main(String[] args) {
    SpringApplication.run(ProducerApplication.class, args);
    }
    }

  • provider代码,在dubbo2.7.7版本中原来的@Service注解变成了@DubboService注解了

    @Component
    @DubboService(interfaceClass = IUserService.class)
    public class UserService implements IUserService {
    @Override
    public String sayHello(String name) {
    return "hello: " + name;
    }
    }

启动dubbo-admin监控中心

最新版的dubbo-admin已经使用了前后端分类,后端用了springboot。

  • 下载路径
    https://github.com/apache/dubbo-admin.git

  • 把工程导入idea,修改dubbo-admin-server的配置文件就可以启动后台项目

    centers in dubbo2.7

    #admin.registry.address=zookeeper://192.168.1.140:2181
    admin.config-center=zookeeper://192.168.1.140:2182
    #admin.metadata-report.address=zookeeper://192.168.1.140:2181

    admin.root.user.name=root
    admin.root.user.password=root
    #group
    admin.registry.group=dubbo
    admin.config-center.group=dubbo
    admin.metadata-report.group=dubbo

    admin.apollo.token=e16e5cd903fd0c97a116c873b448544b9d086de9
    admin.apollo.appId=test
    admin.apollo.env=dev
    admin.apollo.cluster=default
    admin.apollo.namespace=dubbo

    #compress
    server.compression.enabled=true
    server.compression.mime-types=text/css,text/javascript,application/javascript
    server.compression.min-response-size=10240

  • dubbo-admin-ui 前端的启动

    • 启动前端首先要安装nodejs
      https://nodejs.org/en/ 下载安装即可
    • 启动: npm run dev

    设置node仓库

    npm config set registry https://registry.npm.taobao.org

dubbo-admin上看不到服务提供者如何定位问题

使用nacos注册中心

nacos上能看到provider但是dubbo-admin上看不到是怎么一回事呢?
在dubbo-admin上调试发现它请求nacos获取provider信息的时候有传递一个参数group,值是dubbo,再看nacos上面的provider的group是DEFAULT_DUBBO,这两个group不匹配导致获取不到provider。
解决方法,修改dubbo-admin-server配置文件中的group。

admin.registry.group=DEFAULT_DUBBO

使用zookeeper作为注册中心

  • 首先查看zookeeper上是否已经有服务提供者的信息

    使用以下命令登录zookeeper客服端

    bin/zkCli.sh

    使用ls /查看节点,有dubbo或者default-dubbo类似的,再查看下层目录,我这里是有dubbo

    可以看到provider的相关信息,说明provider已经注册上去

    [zk: localhost:2181(CONNECTED) 5] ls /dubbo
    [com.libin.dubbo.IUserService, config, metadata]

  • 检查dubbo-admin的group与zookeeper中的首节点是否一样,不一样的话改成一样

  • zkCli设置value时不能有换行,那如何把换行设置到value中去呢

    bin/zkCli.sh set /dubbo/config/dubbo/dubbo.properties “dubbo.registry.address=zookeeper://192.168.1.140:2181
    dubbo.metadata-report.address=zookeeper://192.168.1.140:2181”

  • 为了避免group不一样的问题,我们可以在服务提供者的配置文件中设置group名

    dubbo.registry.group=ccc

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值