Closed xiaota6 closed 9 months ago
断掉一个节点是怎么断的,看下nacos-cluster.log是不是不停的在更新健康节点。
使用的kill -S SIGSTOP pid断掉一个节点,nacos-cluster.log只有失去连接断掉的节点,后面没有日志输出。使用2.2.4客户端就没有问题。
1.4.6客户端会轮询发心跳,发到中断节点不会同步出去。因此其他节点可能会心跳超时。
2.2.4客户端是长连接, 断了就飘走了。
有方法解决不,因为我们可能会存在连接1.x服务端和2.x服务端两种情况
执行运维操作时规范一下就好
正常停止节点: bin/shutdown.sh 也是可以的, nacos的其他节点会快速识别这个节点不健康,2~3s内就基于剩余节点组成新集群。
但是如果使用自己的停止命令停止时,需要考虑是否有停止缓慢等情况导致抖动。
正常停止节点: bin/shutdown.sh 也是可以的, nacos的其他节点会快速识别这个节点不健康,2~3s内就基于剩余节点组成新集群。
但是如果使用自己的停止命令停止时,需要考虑是否有停止缓慢等情况导致抖动。
并非运维问题,测试人员测试模拟不同的信号量给进程,即使发送的信号量不适用,但集群通过raft协议投票计算出了宕机节点,且在节点列表显示正确,只是服务列表出现上上下下的奇怪现象。发送SIGTERM信号量就没有此现象。
那就需要你们在复现环境中多研究了, 我这复现不了这个问题,只要发送kill指令,节点会无法访问, 其他节点会快速识别到,并且将故障节点摘除,slb的探测也很快会发现,然后摘流。
执行运维操作时规范一下就好
1. 先摘除要下线节点的流量,比如从SLB中移除这个节点ip 2. 然后修改整个集群的cluster.conf文件,集群中不再有这个ip 3. 再中断停止这个ip,重启或者升级 4. 按照顺序反转2,1步骤。
如果集群是容器化部署,关于第二步,是否直接在各容器节点上依次修改 cluster.conf 即可?
手动移除cluster.conf 中某个节点,是否有可能会与管理台下线某个节点一样的引发问题 #9155 其中完成第一步应该保证了不会在有grpc长连接,应该不会造成上述问题了吧。
这是两回事,cluster.conf是修改集群中有哪些节点, 客户端和服务端的连接和这个没关系。
执行运维操作时规范一下就好
- 先摘除要下线节点的流量,比如从SLB中移除这个节点ip
- 然后修改整个集群的cluster.conf文件,集群中不再有这个ip
- 再中断停止这个ip,重启或者升级
- 按照顺序反转2,1步骤。
按照这个操作顺序,我遇到了一个问题,故障节点重新启动后,再将这个ip:port加入其他2个健康节点的cluster.conf,但是健康节点会立马将这个节点剔除,这是为什么呢?烦请指导!
怎么看到被剔除了, 都以cluster.conf文件为准的, 至多刚加入时识别成Down状态,不会把节点去除掉。
怎么看到被剔除了, 都以cluster.conf文件为准的, 至多刚加入时识别成Down状态,不会把节点去除掉。
宕机节点启动后,将ip:port加入到另外2个节点的cluster.conf;vi加完后,大概15s左右,这2个节点就会自动将宕机刚启动的节点从cluster.conf中移除,这个地方我很不理解到底是哪里出了问题?请帮忙分析下原因
从没遇到过。。 这可能和你的环境有关了吧。 我改完之后看nacos-cluster.log 会立刻添加新节点,而且不会删。
昨日我也遇到了这个问题,我是用的是k8s部署的nacos集群3副本pod,其中有一个pod调度到了其他节点,恢复之后重新加入集群就会被剔除,造成所有注册在nacos的服务都会频繁的上线下线,整个业务都收到了影响,按道理说高可用集群不应该出现这种情况,现在还不知道如何来解决,有人知道吗请告诉我指点我
那可能是你们的某个k8s设置,或者operator一直在篡改cluster.conf文件,导致你手动修改的cluster.conf文件过一段时间被某个脚本或程序自动移除了。
我自己的k8s环境部署是没有这个问题的。 纯docker部署的也没有遇到过。
本地直接启动的也是没问题的。
nacos1.4.6客户端连接2.2.3服务端,集群模式三个节点,断掉一个节点,服务会时上线时下线