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
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值