dubbo icon indicating copy to clipboard operation
dubbo copied to clipboard

用nacos作为注册中心,consumer报no provider

Open riflechan opened this issue 2 years ago • 7 comments

  • [ ] 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

  1. 配置dubboreference
  2. 启动服务
  3. 调用服务,报no provider

Pls. provide [GitHub address] to reproduce this issue.

服务调用成功

调用异常,报no provider

  1. 服务启动时,服务注册consumer后 , dubbo收到nacos下发的当前服务的consumer信息变更事件,dubbo会用empty协议的本地provider变更服务provider注册信息
  2. 如果此事件处理在正常实例下发事件处理之后,此时变更实例数为1,导致注册中的forbidden设置为true;则后续调用会产生no provider异常。 image

image

Just put your stack trace here!

riflechan avatar Jan 11 '23 10:01 riflechan

如果注册中心中没有地址,那 forbidden 就是预期的

AlbumenJ avatar Jan 13 '23 03:01 AlbumenJ

注册中心是有注册地址的。问题在nacos下发了consumer本地的注册信息,如果该消息处理有延迟,则会覆盖正常的注册信息

riflechan avatar Jan 16 '23 01:01 riflechan

nacos下发了consumer本地的注册信息

这个是什么

AlbumenJ avatar Jan 16 '23 03:01 AlbumenJ

同样的版本,同样的问题,而且provider重启后服务会正常,这个后来是怎么解决的?

caspar-chen avatar Jul 04 '23 10:07 caspar-chen

@AlbumenJ , 这个问题和已close问题https://github.com/apache/dubbo/issues/5885是一样的; 当应用启动的时候,没有走subscribeEventListener中的订阅逻辑,而是直接走了doSubscribe image

riflechan avatar Jul 10 '23 03:07 riflechan

Try 2.7.23

AlbumenJ avatar Jul 14 '23 09:07 AlbumenJ

所以这个问题是在2.7.23版本中解决了, 我今天用相同的版本也遇到了相同的问题

Try 2.7.23

Guo-Chenxu avatar Apr 24 '24 12:04 Guo-Chenxu