现有5台服务器,php
当服务器1启动时,因为当前只有1台服务器,发出的请求无响应,所以当前选举状态为Looking状态。算法
当服务器2启动时,与最开始的服务器1进行通讯,互相交互选举结果,id较大的获胜,所以服务器2胜出,但因为没有达到半数以上的服务器赞成要求,所以服务器1,服务器2继续保持Looking状态服务器
当服务器3启动时,根据前面PK逻辑,服务器3将成为Leader,因为有3台服务器支持,所以成为Leader分布式
当服务器4启动时,因为前面有服务器3成为Leader,所以服务器4是Follower角色源码分析
当服务器5启动时,和4一致,服务器5角色为Followerspa
选票信息(myid,ZXID)(myid:配置文件,ZXID:事务ID).net
优先比较ZXID,大的优先为Leaderblog
ZXID一致,比较myid;myid大的有限Leader事务
参考资料get
《从PAXOS到ZOOKEEPER分布式一致性原理与实践》
zookeeper3.3.3源码分析(二)FastLeader选举算法