dubbo
dubbo copied to clipboard
用nacos作为注册中心,consumer报no provider
- [ ] I have searched the issues of this repository and believe that this is not a duplicate.
Environment
- Dubbo version: 2.7.18
- Operating System version: Ubuntu 20.04.5 LTS
- Java version: 1.8.0_202
Steps to reproduce this issue
- 配置dubboreference
- 启动服务
- 调用服务,报no provider
Pls. provide [GitHub address] to reproduce this issue.
服务调用成功
调用异常,报no provider
- 服务启动时,服务注册consumer后 , dubbo收到nacos下发的当前服务的consumer信息变更事件,dubbo会用empty协议的本地provider变更服务provider注册信息
- 如果此事件处理在正常实例下发事件处理之后,此时变更实例数为1,导致注册中的forbidden设置为true;则后续调用会产生no provider异常。


Just put your stack trace here!
如果注册中心中没有地址,那 forbidden 就是预期的
注册中心是有注册地址的。问题在nacos下发了consumer本地的注册信息,如果该消息处理有延迟,则会覆盖正常的注册信息
nacos下发了consumer本地的注册信息
这个是什么
同样的版本,同样的问题,而且provider重启后服务会正常,这个后来是怎么解决的?
@AlbumenJ , 这个问题和已close问题https://github.com/apache/dubbo/issues/5885是一样的; 当应用启动的时候,没有走subscribeEventListener中的订阅逻辑,而是直接走了doSubscribe
Try 2.7.23