dubbo-go icon indicating copy to clipboard operation
dubbo-go copied to clipboard

Consumer依然会调用已下线Provider的问题

Open shenchao861129 opened this issue 1 year ago • 4 comments

Environment

  • Server: Dubbo-go, v3.0.1
  • Client: Dubbo-go, v3.0.1
  • Registry: ZooKeeper

我们在线上发现了Consumer依然会调用已下线Provider的问题。

现象如下:B服务会调用A服务,A服务的A1实例下线后,B服务中的部分实例,如B2、B3依然会调用已下线的A1,B1则不会。

经过对dubbo的日志进行分析,发现实例B2、B3在([Registry Directory] selector delete service url)移除A1后,又进行了([Registry Directory] selector add service url)注册,而B1则不会。

Logs

#B1 正常,不会继续调用已下线的A1 image #B2 异常,会继续调用已下线的A1 image #B3 异常,会继续调用已下线的A1 image

shenchao861129 avatar Jun 02 '23 07:06 shenchao861129

@bobtthp Could you follow up on this issue?

justxuewei avatar Jun 20 '23 14:06 justxuewei

同步下最新进展,我们现在暂时调整了服务部署的策略,避免部署时同时启动或者下掉多个pod,目前看效果很好,不会再出现上面这个问题。但是现在调整部署策略也只是临时方案。还是希望能定位到具体问题。

image

shenchao861129 avatar Jun 30 '23 07:06 shenchao861129

@bobtthp Could you follow up on this issue?

ok

bobtthp avatar Jul 01 '23 14:07 bobtthp

同步下最新进展,我们现在暂时调整了服务部署的策略,避免部署时同时启动或者下掉多个pod,目前看效果很好,不会再出现上面这个问题。但是现在调整部署策略也只是临时方案。还是希望能定位到具体问题。

image

目前看下来,感觉逻辑是没有问题的,和用户沟通了下,可能场景在批量下线问题出现几率更大。 准备搞个 demo 测试一下,看是否可以复现

bobtthp avatar Jul 03 '23 11:07 bobtthp