zk选举——countVotes投票统计算法
2015-09-01 16:38:30 6 举报
Zookeeper选举——countVotes投票统计算法是一种基于Zookeeper分布式系统中的领导者选举算法。该算法通过统计所有节点的投票结果,选出得票数最多的节点作为领导者。在选举过程中,每个节点都会向其他节点发送投票请求,并接收其他节点的投票响应。当一个节点收到半数以上节点的投票时,它将成为领导者。如果在一定时间内没有节点获得过半数的投票,则会重新开始选举过程。countVotes算法具有较高的可靠性和容错性,能够保证系统在部分节点故障的情况下仍能正常运行。
作者其他创作
大纲/内容
返回result 保存了高票节点和票数
ElectionResult实体votecountwinner 获胜的Vote对象winningCount 获胜的票数numValidVotes 有效的票数
从counttable中找到最高票的节点,赋值给winningCount和winner
LeaderElectionhashSet heardFrom 按顺序保存了接收到的选票的所有节点idVotes Map类型 Vote包括 被选的节点id、zxid
依次汇总被选节点的票数,存入counttable
为什么zxid会不同
判断所有vote的节点id是否都在heardFrom——汇总有效选票同时找到每个被选节点的最大的zxid
将所有选票都赋予其被选节点所对应的最大zxid
0 条评论
下一页