Candidate 等待其他Follower 节点的投票回复,收到的回复可能会出现哪几种结果?
Candidate 等待其他Follower 节点的投票回复,收到的回复可能会出现以下三种结果:
• Candidate 节点收到了超过半数的投票,赢得选举,成为Leader,此时它会向其他节点发送心跳消息,维持自身的Leader 地位,并阻止新选举的产生。
• Candidate 节点收到了其他节点发来的任期号更大的消息,这表示其他节点当选为Leader,此时Candidate 会切换为Follower 状态。如果Candidate 收到了更小的任期号,节点会拒绝这次请求,并继续保持Candidate 状态。
• 若各个 Candidate 节点均未获得超过半数的选票,则选举超时。此时每个Candidate 节点通过增加当前任期号开始一轮新的选举。为防止多次选举超时,Raft 使用随机选举超时时间的算法,每个Candidate 开始一次选举时,会设置一个随机选举超时时间,防止多个Candidate 节点同时超时、同时开始下 一轮选举,从而减少在新的选举中选票被瓜分的可能性。
以上内容摘自《云原生数据库原理与实践》,这本书可以在电子工业出版社天猫店购买。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。