zoukankan      html  css  js  c++  java
  • 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 既是提供者又是消费者了。

  • 相关阅读:
    【转载】S5PV210 三星官方原理图(包含核心板和底板)
    关于飞凌技术支持更改通知
    【收集】几个gooogleman嵌入式联盟比较好的帖子
    分析我的OV3640 打开软件立即导致PDA死机的原因
    【喜讯】嘿嘿,Real6410/TE6410/OK6410 支持jlink V8+RVDS2.2 仿真调试了
    【转载】三星A8 S5pV210 硬件设计指南S5PV210_Hardware Design Guide_Rev1.0
    【爆料】公布一个经典6410 原理图(orcad)+PCB(candence)图—— real6410 PCB 大全(核心板+底板)
    【呜呼】大学生烧毕业证书谁的错?!
    【转载】三星A8 S5pV210 硬件设计指南S5PV210_Hardware Design Guide_Rev1.0
    【转载】2440的GPIO模拟IIC程序
  • 原文地址:https://www.cnblogs.com/iathanasy/p/8034104.html
Copyright © 2011-2022 走看看