zookeeper默认使用的一种算法:采用投票数大于半数则胜出的逻辑
分两种情况:
1.第一次启动Zookeeper集群-----选出一个Leader
每次投票:
1)投自己一票
2)和其他主机进行投票交换
3)判断投票的主机个数是否过半
4)若投票个数过半,则直接比较id的值,id值最大的则是Leader
总结:在启动2n+1时id的值最大的Znode主机就是Leader,后面启动的不管id的值多大,都是follower.
2.在运行期间,Leader宕机,需要重新选出一个Leader
每次投票:
1)判断存活的主机是否过半
2)投票时进行zxid值的比较,zxid最大的为Leader
3)若zxid都一样,则比较id,id最大的为Leader



