记一次dubbo forbid consumer 解决过程

受启发的链接:

        https://blog.csdn.net/fei33423/article/details/50345955


上边的链接表明了出现这个异常的原因。但是根本的原因在哪,却是没有指出来。首先我们需要找到这个方法:

然后,看到UrlUtils.isMathc(consumer,url) 了吗,点进去。

看我画圈的地方。dubbo会比较服务提供者 和 服务消费者的 group(默认是null),version,接口名。如若你的提供者或消费者的version有一方没有申明或版本不对(我遇到的就是这个。。。),就会最终报错( forbid consumer)。这个方法如果比较的接口不对,会返回false,然后第一张图的urls 会返回一个 size==0的list.

然后看图3.当urls size 为 0时候,下面的 toUrlsWithEmpty 方法中,会把消费者的protocol变为 empty.


然后看图4. refreshInvoker方法。如果你的接口的protocol 是 empty,那么把forbidden 设置为true.

然后看图5  doList 方法。如果forbidden 为true,则会抛出 forbid consumer 。。。。。到此追踪完毕。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值