SpringBoot下Dubbo的多配置中心使用总结(包括注解使用的坑)

本文总结了在SpringBoot环境下使用Dubbo进行多配置中心配置时遇到的问题及解决方案,包括服务提供者和消费者配置文件的设置,以及Reference注解在不同配置中心下的使用陷阱,通过实例展示了如何正确区分和调用不同注册中心的服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、前言

在SpringBoot的Dubbo多配置中心遇到了比较多的坑,所以做个总结,对遇到此问题的人,可能会有很大的帮助。
我在项目服务消费方的模块中声明了一个接口,我希望我只做一个类似网关(可以想象成这样)的服务,将获取的消息,通过接口传递到另一个微服务(服务提供方可能有多个,但是接口只有一个),这样其他服务围绕我的服务作为入口,调用服务只需要通过我的路由配置,就可以调用不同服务的相同接口的实现。

二、配置文件具体实现

提一点,通过配置文件的方式非常清楚,能够清晰地明白多注册中心的使用。

要点:

(1)register group,仅仅用来区分注册中心,如果注册中心不同,就新配置一个。

(2)service group是服务的(也用其他属性区分,比如配置文件中可以用id区分),不管注册中心的group是相同还是不同,这个必须存在。这个group是dubbo判断一个接口的依据,如果group不同,那么就是不同的接口,dubbo会生成一个新的代理。这个group必须全局唯一。

1、服务提供者配置文件

provider1.xml: 

   <dubbo:application name="dubbo-provider1" owner="u"/>
   <dubbo:registry protocol="zookeeper" address="127.0.0.1:2181" check="false"
                    group="provider1"/>
   <dubbo:protocol name="dubbo" port="20880" host="127.0.0.1"/>
    
   <dubbo:service interface="com.example.demo.service.DemoService" ref="providerService" protocol="dubbo"/>
   <bean id="providerService" class="com.example.demo.service.impl.ProviderServiceImpl"/>


provider2.xml:

   <dubbo:application name="dubbo-provider2" owner="l"/>
   <dubbo:registry protocol="zookeeper" address="127.0.0.1:2181" check="false"
                    group="provider2"/>
   <dubbo:protocol name="dubbo" port="20881" host="127.0.0.1" />

   <dubbo:service interface="com.example.demo.service.DemoService" ref="provider2Service" protocol="dubbo"/>
   <bean id="provider2Service"class="com.example.demo.service.impl.Provider2ServiceImpl"/>


2、服务消费者配置文件

consumer.xml:

    <dubbo:application name="dubbo-consumer"/>
    <dubbo:registry id="p1" check="false" protocol="zookeeper" address="127.0.0.1:2181" group="provider1"/>
    <dubbo:registry id="p2" check="false" protocol="zookeeper" address="127.0.0.1:2181" group="provider2"/>
    <dubbo:protocol name="dubbo" port="20883" host="127.0.0.1"/>

    <dubbo:reference interface="com.example.demo.service.DemoService" id="providerService" registry="p1"/>
    <dubbo:reference interface="com.example.demo.service.DemoService" id="provider2Service" registry="p2"/>

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值