SpringBoot整合Dubbo+ZK注册失败的坑及解决
作者:wangshili程序员
使用Dubbo框架时,需在公共pom添加依赖,启动类加@EnableDubbo,实现类用@DubboService替代@Service,配置中base-packages存在识别bug,可通过zkCli命令或监控中心验证服务注册状态
1.先看下公共的pom(maven创建的pom工程)
以下必须加
<dependencies> <!--springBoot动态的引入springMVC全部的配置 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- 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.7</version> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> </exclusions> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.curator/curator-framework --> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-framework</artifactId> <version>4.3.0</version> </dependency> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-recipes</artifactId> <version>2.8.0</version> </dependency> </dependencies>
2.启动类上加@EnableDubbo
@EnableDubbo是包括了@EnableDubboConfig
3.实现类上加@DubboService,实现类一定要实现接口
之前的版本是@Service,现在过期变成@DubboService了,也确实是,干嘛要和Spring的Service一样呢
4.坑人的配置
具体看如图片:
这个base-packages是默认提示出来的,结果却是不行的,还不报错,算是一个小bug吧
5.确定zookeeper打开就行了
确认注册成功的方法,可以打开zk的cli,在zk的安装目录下进入到bin目录,打开cmd,执行zkCli.cmd就会连接zk,输入命令ls /可以看到有什么哪些注册服务,输入ls /dubbo就可以看到注册成功的服务,如下图:
第二种方法就是运行监控中心了如下图:
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。