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 的问题的更多相关文章
- Java微服务(二):服务消费者与提供者搭建
本文接着上一篇写的<Java微服务(一):dubbo-admin控制台的使用>,上篇文章介绍了docker,zookeeper环境的安装,并参考dubbo官网演示了dubbo-admin控 ...
- 作为消费者访问提供者提供的功能(eureka的铺垫案例)
1. 实体类.提供者的创建如本随笔者的Euraka适合初学者的简单小demo中有所展示 2. 创建子工程作为消费者 (1) 添加依赖:切记引入实体类的依赖 <dependencies> & ...
- Dubbo入门到精通学习笔记(十二):Dubbo消费端直连提供者(开发调试)、Dubbo服务只订阅(开发调试)、Dubbo服务只注册
文章目录 Dubbo消费端直连提供者(开发调试) Dubbo服务只订阅(开发调试) Dubbo服务只注册 Dubbo消费端直连提供者(开发调试) Dubbo 官方文档: 用户指南 >> 示 ...
- java多线程解决生产者消费者问题
import java.util.ArrayList; import java.util.List; /** * Created by ccc on 16-4-27. */ public class ...
- Java如何使用线程解决生产者消费者问题?
在Java编程中,如何使用线程解决生产者消费者问题? 以下示例演示如何使用线程解决生产者消费者问题. package com.yiibai; public class ProducerConsumer ...
- Linux多线程实践(六)使用Posix条件变量解决生产者消费者问题
前面的一片文章我们已经讲过使用信号量解决生产者消费者问题.那么什么情况下我们须要引入条件变量呢? 这里借用 http://www.cnblogs.com/ngnetboy/p/3521547.htm ...
- Spring-Boot 整合Dubbo 解决@Reference 注解为null情况
首先检查一下你的spring boot版本是多少? 如果是2.X 不用看了,spring boot 2.x 必定会出现这个问题, 改为 1.5.9 或其他1.x版本,目前生产环境建议使用1.x版本. ...
- Dubbo中服务消费者和服务提供者之间的请求和响应过程
服务提供者初始化完成之后,对外暴露Exporter.服务消费者初始化完成之后,得到的是Proxy代理,方法调用的时候就是调用代理. 服务消费者经过初始化之后,得到的是一个动态代理类,InvokerIn ...
- Dubbo生产者和消费者经典案例
一.导入依赖 <dependency> <groupId>javaee</groupId> <artifactId>javaee-api</art ...
随机推荐
- 从Spark1.6到Spark2.1,Logging该何去何从
大家都知道spark 1.6.0版本比较稳定,也比较流行. 我们项目组也是,最初用的就是这个版本. 这段时间,项目组引入spark 2.1.0版本,我想尝尝鲜. Pom中刚刚换了dependency马 ...
- ubuntu 安装 OpenCV-CUDA
参考链接:http://www.cnblogs.com/platero/p/3993877.html 官方指导:https://help.ubuntu.com/community/OpenCV 0.这 ...
- 11.05 选择前n个记录
select ename,salfrom(select (select count(distinct b.sal)from emp bwhere a.sal<=b.sal) as rnk,a.s ...
- Auto Layout压缩阻力及内容吸附讲解
Auto Layout压缩阻力及内容吸附讲解 本文为投稿文章,作者:梁炜V 在Auto Layout的使用中,有两个很重要的布局概念:Content Compression Resistance 和 ...
- 企业级任务调度框架Quartz(7) 线程在Quartz里的意义(1)
1.Java 中的线程 线程允许程序同一时间做很多任务,至少,看起来那些任务是并发执行的.在我的并发编程的帖子里有介绍线程的基本概念:我们知道在任一特定时刻仅有一个线程 在执行,但是 CPU ...
- codevs 2800 送外卖 floyd + Tsp
简单的状压动归 #include<cstdio> #include<algorithm> using namespace std; const int N=17; const ...
- 【LeetCode算法】LeetCode初级算法——字符串
在LeetCode初级算法的字符串专题中,共给出了九道题目,分别为:反转字符串,整数反转,字符串中的第一个唯一字符,有效的字母异位词,验证回文字符串,字符串转换整数,实现strStr(),报数,最 ...
- Linux进程地址管理之mm_struct
FROM : http://www.cnblogs.com/Rofael/archive/2013/04/13/3019153.html Linux对于内存的管理涉及到非常多的方面,这篇文章首先从对进 ...
- 封装自己的jquery框架
jQuery is a fast small JavaScript library 如何封装自己的jQuery <script> // 这里使用沙箱模式,可以防止全局污染 (functio ...
- BZOJ 3028 食物 (生成函数+数学题)
题面:BZOJ传送门 题目让我们求这些物品在合法范围内任意组合,一共组合出$n$个物品的方案数 考虑把每种食物都用生成函数表示出来,然后用多项式乘法把它们乘起来,第$n$项的系数就是方案数 汉堡:$1 ...