-
Notifications
You must be signed in to change notification settings - Fork 26.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
dubbo的提供者服务所在的节点直接意外关机了,原来的服务提供者虽然剔除了但消费者仍然在调用原来的服务提供者,这是怎么回事啊,求大佬解答。 #10863
Comments
推送会有延迟吧,出错重试调用其他服务就可以 |
就是想搞清楚为啥没有及时把已经下线的节点剔除掉,还去调用原来的节点。就算不是优雅退出,整个节点都关机了,zk的心跳机制也会判定老节点失效了应该不会再去调用才对啊。 |
心跳是有周期的,需要看下这个错误调用是有多久,如果是短时间的那就是推送时效的问题。(大约在 1 分钟内) |
操作的间隔时间是满足了周期的,旧节点关机下线都差不多一个小时了,但是消费者还在调用旧的提供者,但是dubbo_admin中的提供者清单里面是没有旧的节点信息了。 |
会不会是dubbo的消费者的本地缓存没有更新,导致调用原来的老的提供者。 |
dubbo在有服务提供者宕机或正常关闭时,ZK注册中心会把该节点剔除,并通知所有服务消费者更新本地缓存,但是从此问题的现象看消费者的本地缓存并没有更新。 |
升级到 3.1.1 版本看下有没有问题呢 |
我也遇到过类似的问题,consumer的本地缓存文件已经更新了,但是consumer还是调用已经下线的provider,并且一直持续。 |
对,就很奇怪;按道理讲本地缓存都更新了,最先调用的又是本地缓存为什么还要去调用下线的服务提供者。 |
dubbo 2.7 的版本中可能存在 zk 连接断了的情况,这个时候 consumer 是不会再刷新数据的 |
哦 原来是这样 这种场景能通过代码说明 或者 什么情况会复现呢 大佬 |
请问问题解决了吗?单位用的同样的nacos和dubbo |
我们也遇到类似的,但跟provider没有太大关系。 |
dubbo是做了服务下线的钩子程序,按zk会下线老的提供者,且用的2.7.8的版本 dynamic默认就是true,但是消费者还是会去调用原来的提供者,导致服务出错。
The text was updated successfully, but these errors were encountered: