追风赶月莫停留,平芜尽处是春山。这篇文章主要讲述dubbo 解决既是消费者又是提供者 Duplicate application configs 的问题相关的知识,希望能为你提供帮助。
首先
有应用A
是 提供者
应用B
来实现既是消费者又是提供者
在应用 B
这边新建两个xml
dubbo-consumer.xml
消费者
< !-- 自动扫描注解:通过dubbo实现 --> < dubbo:annotation package="test.dubbo.*" /> < !-- 必须加上:提供方应用服务端的名称 --> < dubbo:application name="person-client" /> < !-- 服务端需要把dubbo服务注册到zookeeper上进行广播 --> < dubbo:registry address="zookeeper://127.0.0.1:2181" />
< !-- 用dubbo协议在20881端口服务 --> < dubbo:protocol name="dubbo" port="20881" />
< !-- 注册需要使用的dubbo服务,通过interface指定服务接口 --> < dubbo:reference id="personInfoService" interface="test.dubbo.itf.IpersonInfoService" timeout="10000" check="false" />
dubbo-provider.xml 提供者
< !-- 自动扫描注解:通过dubbo实现 --> < dubbo:annotation package="test.dubbo.*" /> < !-- 必须加上:提供方应用服务端的名称 --> < dubbo:application name="person-center" /> < !-- 服务端需要把dubbo服务注册到zookeeper上进行广播 --> < dubbo:registry address="zookeeper://127.0.0.1:2181" /> < !-- 用dubbo协议在20880端口暴露服务 --> < dubbo:protocol name="dubbo" port="20880" /> < !-- 服务端声明需要对外开放提供服务的接口 --> < dubbo:service interface="test.dubbo.itf.IpersonInfoService" protocol="dubbo" ref="personInfoService" />
启动之后会报错: Duplicate application configs: < dubbo:application name="person-client" id="person-client" /> and < dubbo:application name="person-center" id="person-center" />
重复的应用程序的配置
解决办法是把其中一个xml中的配置文件删除,留一个就好了
比如删除 dubbo-provider.xml 里面的
< !-- 自动扫描注解:通过dubbo实现 --> < dubbo:annotation package="test.dubbo.*" /> < !-- 必须加上:提供方应用服务端的名称 --> < dubbo:application name="person-center" /> < !-- 服务端需要把dubbo服务注册到zookeeper上进行广播 --> < dubbo:registry address="zookeeper://127.0.0.1:2181" /> < !-- 用dubbo协议在20880端口暴露服务 --> < dubbo:protocol name="dubbo" port="20880" />
修改后的 xml文件
dubbo-consumer.xml 消费者
< !-- 自动扫描注解:通过dubbo实现 --> < dubbo:annotation package="test.dubbo.*" /> < !-- 必须加上:提供方应用服务端的名称 --> < dubbo:application name="person-client" /> < !-- 服务端需要把dubbo服务注册到zookeeper上进行广播 --> < dubbo:registry address="zookeeper://127.0.0.1:2181" /> < !-- 用dubbo协议在20881端口服务 --> < dubbo:protocol name="dubbo" port="20881" /> < !-- 注册需要使用的dubbo服务,通过interface指定服务接口 --> < dubbo:reference id="personInfoService" interface="test.dubbo.itf.IpersonInfoService" timeout="10000" check="false" />
dubbo-provider.xml 提供者
< !-- 服务端声明需要对外开放提供服务的接口 --> < dubbo:service interface="test.dubbo.itf.IpersonInfoService" protocol="dubbo" ref="personInfoService" />
原因是一个应用不能有重复的应用程序配置,去掉一个相同的配置就可以了。
这样就可以实现 dubbo 既是提供者又是消费者了。
【dubbo 解决既是消费者又是提供者 Duplicate application configs 的问题】
推荐阅读
- 严重: Error loading WebappClassLoader context:异常的解决方法(转)
- [RK3288][Android6.0] 关于uboot中logo相关知识点小结
- windows下安装Virtualenvwrapper
- Android为TV端助力 listview与recyclerview上下联动
- Deep Neural Network for Image Classification: Application
- Android应用如何跳转到应用市场详情页面
- 689. Maximum Sum of 3 Non-Overlapping Subarrays
- [学习笔记] CS131 Computer Vision: Foundations and Applications(Lecture 9 深度学习2)
- AndroidStudio自定义TODO