1.注册失败,心跳成功,那么服务也会注册到节点上,最后也会同步到其它节点;这个会不会有一种幻觉的感觉,明明失败了,过一会儿查看确有了
2.tcp 健康检测机制,根据检查结果,实例状态发送变化,怎么同步给其它实例呢 --我看源码是发送请求/api/healthCheckResult 但是没有找到这个请求接收的类;就是TCP 健康检查结果数据怎么流转的呢
3.raft 存储数据的问题
三个活跃节点 A,B,C;其中A 为leader
1.在注册服务的时候,先在A 节点存储成功,但是这个时候B,C 因为某种原因网络波动了,导致最终注册失败,提示给客户端注册失败;但是随后网络恢复,leader 会通过心跳把刚才注册的服务同步到其它节点吗?如果会,其实表示已经注册成功了; 2. 即使不会,A 节点已经有刚注册节点,这个不需要回滚机制吗?
目前有5个节点,A,B,C,D,E 其中 A 为leader
2.注册服务时,A 向B发送了注册请求后就宕机了,B 已经存储了,最后leader 选举,选了C (有可能把);那c 在发起心跳时,由于B 的term >C ,无法接受C 的心跳数据同步,一直会出现,B 数据多余C 情况,除非新增服务;这种情况能容忍吗
原提问者GitHub用户wu603772498
第一点:是一个优化点 第三点:一致性协议是不存在回滚机制的,只有提交成功或者不成功;B的term大于C,C就不可能会是Leader,除非网络分区的因素,C节点所在的网络分区的总Nacos节点数满足过半要求,且C的term最大
关于第二个问题,关于健康检查结果的改变,通过distro协议的对账机制同步给其他节点。没有走raft协议。
原回答者GitHub用户chuntaojun
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。