为什么Nacos心跳持续报错但⽣产环境上没观察到服务被踢下线的情况?
因为有以下情况:
1.只有当心跳发到不是自己负责的节点上时,才会发生转发,从而丢失 body 里 beat 参数。
2.客户端发心跳出错时会重试 3 次。
3.客户端每 5s ⼀次心跳,Server 端超过 30s 没有收到正确的心跳后才会把实例设为不健康。也就是客户端发送的心跳需要连续(1+3)*6=24 次心跳都没发到负责的节点上时,实例才会被标记为不健康。3 个节点的集群,这个概率大约是 百万分之 5。
4.生产环境上⼀个服务⼀般都会至少有两个以上实例,⼀个实例不健康不影响服务。 综上,生产环境上很难观察到服务被下线的情况。但是会有大量的心跳出错重试的问题,需要尽快把Nacos server 升级上去。
资料来源:《Nacos架构&原理》,下载链接为:https://developer.aliyun.com/topic/download?id=8230。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。