dubbo 解决既是消费者又是提供者 Duplicate application configs 的问题

首先  有应用A  是 提供者

应用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 既是提供者又是消费者了。

 

最怕一生碌碌无为 , 还说平凡难能可贵.


原文地址:https://www.cnblogs.com/iathanasy/p/8034104.html


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值