赞
踩
半数机制
集群中半数以上的机器存活,集群可用,所以Zookeeper 适合安装奇数台服务器
全新集群选举
服务器1启动,先投给自己一票,此时不够半数以上,服务器1继续保持跟随者
服务器2启动,先投给自己一票,此时服务器1看到服务器2的id比自己大,将自己的一票投给服务器1,服务器2此时有两票,不够半数以上,继续保持跟随者
服务器3启动,先投给自己一票,然后服务器1,2,发现服务器3比自己id大,分别把票投给服务器3,此时服务器3的票数达到半数以上,当选领导者。
服务器4启动,发现已经有了领导者,少数服从多数,将自己的一票投给3号
服务器5启动,同服务器4一样
非全新集群选举
对于正在正常运行的zookeeper集群,中途又机器down掉,需要重新选举时,选举过程就需要加入数据id,服务器id,和逻辑时钟
逻辑时钟:
从0开始递增,每次选举对应一个值,在同一次选举中,这个值是一致的
数据id:
数据新的version就大,数据每次都会更新version(数据最新的胜出)
服务器id:
Myid 每个机器一个
选举的标准:
逻辑时钟小的选举结果会被忽略,重新投票
统一逻辑时钟后,服务器id大的胜出,当选leader
数据id相同的情况下,服务器id大的胜出,当选leader。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。