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 ...
随机推荐
- Windows Server2008上安装VS2008出错及解决办法
作者:朱金灿 来源:http://blog.csdn.net/clever101 win server 2008安装vs2008后报错,如下图: 然后到网上找了一种解决办法: (1)打开服务器管理器 ...
- 得到Xml中 元素的值
<?xml version="1.0" encoding="utf-8" ?><Response service="RouteSer ...
- swift Self
'Self' is the type of a protocol/class/struct/enum.And the 'self' is a instance of a class/struct/en ...
- Sublime Text 3 Build 3047 安装/插件安装/C编程环境配置
Sublime Text 3 Build 3047 安装 参考:http://sublimetext.iaixue.com/forum.php?mod=viewthread&tid=29 插件 ...
- public static final 的用法
public satic final 修饰后变量的名字全部用大写,定以后可以用类名直接访问,定义的变量不能被修改 所有的接口成员已经是静态,由于接口没有方法所有所以必须先赋值才行,可以直接用接口名调用 ...
- Vue双向绑定
vue的双向数据绑定的原理相信大家都十分了解:主要是通过ES5的Object对象的defineProperty属性:重写data的set和get函数来实现的. 该方法允许精确的添加或者修改对象的属性: ...
- 让SSL证书给服务器上一把“锁”
近期,用户数据泄露的新闻接二连三地被曝光.先有京东金融App涉嫌自动获取用户手机中的敏感照片,随后CNET又爆出中国深圳的一家人工智能公司深网视界对于其人脸识别数据库没有密码保护,导致250万用户信息 ...
- XSS Chanllenges 6-10
Stage #6 测试代码</xss> 存在过滤,并且也没有其他输入点,尝试构建" onmousemove="alert(document.domain),并查看源代码 ...
- 01.Python基础-2.判断语句和循环语句
1判断语句 1.1判断语句介绍 满足条件才能做某件事 1.2 if语句 if 条件: 语句块 在if判断条件的时候 False:False, 0, '', None, [] True :基本除上面之外 ...
- Java 超类引用子类对象的示例代码
动态方法分配 dynamic method dispatch 一个被重写的方法的调用会在运行时解析,而不是编译时解析 Java 会根据在调用发生时引用的对象的类型来判断所要执行的方法 public c ...