【Bug】同一接口多实现类下dubbo调用服务错乱

本文讲述了在项目A和B中,由于多个实现类对接口CommonService的实现,导致Dubbo调用服务出现混乱的情况。每个项目分别提供和消费不同数量的服务,配置了服务分组以区分不同实现,但在调试时发现Dubbo控制台只显示服务提供者,不显示消费者。文章旨在分析问题并提出解决方案。

有两个项目A、B,各自有一定数量实现了CommonService接口的实现类,而当将这些实现类配置成dubbo服务供彼此消费时,会出现实际消费的服务并不符合预期
A项目提供两个服务并消费三个服务

<dubbo:service interface=“com.xxx.CommonService” ref=“receiveService” />
<dubbo:service interface=“com.xxx.CommonService” ref=“sendService” />
<dubbo:reference id=“asyncService” interface=“com.xxx.CommonService” />
<dubbo:reference id=“syncService” interface=“com.xxx.CommonService” />
<dubbo:reference id=“analysisService” interface=“com.xxx.CommonService” />

B项目提供三个服务并消费两个服务

<dubbo:reference interface=“com.xxx.CommonService” id=“receiveService” />
<dubbo:reference interface=“com.xxx.CommonService” id=“sendService” />
<dubbo:service ref=“asyncService” interface=“com.xxx.CommonService” />
<dubbo:service ref=“syncService” interface=“com.xxx.CommonService” />
<dubbo:service ref=“analysisService” interface=“com.xxx.CommonService” />

当在A项目中消费asyncService服务时发现实际调用的是analysisService在这里插入图片描述
针对每个服务提供者一个分组,以实现区分同一接口的不同实现类

A项目修改后的配置如下:

<dubbo:service interface=“com.xxx.CommonService” ref=“sendService”  group="sendService"/>
<dubbo:reference id=“asyncService” interface=“com.xxx.CommonService” group="asyncService"/>

B项目修改后的配置如下:

<dubbo:reference interface=“com.xxx.CommonService” id=“sendService” group="sendService"/>
<dubbo:service ref=“asyncService” interface=“com.xxx.CommonService” group="asyncService"/>

在调试过程中发现在dubbo控制台只能找到服务的提供者却看不到该服务的消费者

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值