因implements Interface书写顺序导致的Dubbo翻车实录

今天迁移Dubbo的代码,突然有个Service死活都找不到。
调用端报错:
No provider available for the service org.ccframe.subsys.core.service.ITenantSearchService from registry 127.0.0.1:2181 on the consumer 192.168.1.88 using the dubbo version 3.1.11. Please check if the providers have been started and registered.

服务端报错:
Service org.ccframe.subsys.core.service.ITenantSearchService with version 0.0.0 not found, invocation rejected.

发现很奇怪,其它服务好好的,唯独这个服务不行。只能一段一段代码排查,最后发现问题居然是implements Interface的顺序导致了无法注册provider

由于需要在service里初始化一个jetcache,顺手引入了个implements InitializingBean。在Bean初始化时同时初始缓存,结果由于InitializingBean写在implements第一位的,于是乎provider就挂了。

事故现场快照:


明显,需要的provider注册到InitializingBean接口下了。

事故类这样申明的:
 

@DubboService
public class TenantSearchService extends BaseSearchService<Tenant, TenantSearchRepository> implements InitializingBean,ITenantSearchService {

经过排查后修改如下:

@DubboService
public class TenantSearchService extends BaseSearchService<Tenant, TenantSearchRepository> implements ITenantSearchService,InitializingBean {

然后重新启动后,provider顺利注册上去了:

在此记录一笔,implements的书写顺序也能导致代码翻车,够狠

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值