由于多个provider注册在了两个zookeeper上,之前使用在spring时,使用的是dubbo配置文件,定义了多个registry,通过id可以进行区分。
<dubbo:registry id="test1" protocol="zookeeper" address="${dubbo.address}" />
<dubbo:registry id="test2" protocol="zookeeper" address="${dubbo.address1}" />
<dubbo:reference registry="test1" id="cityDubboService" interface="com.example.demo.CityDubboService" check="false" />
将customer端改为使用springboot框架,使用注解的形式,对provider进行调用。
application.properties
配置文件中添加dubbo相关调用信息
spring.dubbo.application.name=consumer
spring.dubbo.application.registries[0].address=zookeeper:#127.0.0.1:2181
spring.dubbo.application.registries[0].registry="test1"
spring.dubbo.application.registries[1].address=zookeeper:#127.0.0.2:2181
spring.dubbo.application.registries[1].registry="test2"
spring.dubbo.scan=com.example.demo.controller
在调用时添加注解及参数为
@Reference(registry="test1")
CityDubboService cityDubboService;
无法调取dubbo端对象(注:同样代码,单注册中心调用成功,所以provider端应该没有问题,问题可能出现在consumer端的配置,代码如上)
遇到同样的问题,自己写的registry bean并且指定,但是似乎无效