leader选举前提:
- 有新的服务器加入到集群当中(有处于Looking状态的服务器)
- 集群leader宕机
有新的服务器加入到集群当中(有处于Looking状态的服务器)情形:
当集群中有新的机器加入或者存在服务器处于Looking状态时,该服务器会向集群中的每个机器发送一个通知消息,该消息中含有该服务器的投票信息,投票信息中包含两部分,服务器标识(sid)以及最近处理事务的id(zxid),当集群中服务器收到投票信息时,服务器会根据收到的zxid来更改自己将要投出的票,若zxid大于自己本身的zxid,那么该服务器会将票投给zxid最大的那个服务器,简而言之,zxid最大的也就是事务id最新的服务器会当选leader,若集群中多台机器zxid想等,那么此时sid大的当选leader,
集群leader宕机的情形:
当leader挂了,所有的follower会失去与leader的通信,那么此时follow服务器状态会有Following -> Looking,那么这个时候leader的选举就如上述情形一样进行。
本文阐述了ZooKeeper集群中Leader选举的两种触发场景:新服务器加入与Leader宕机。详细解析了选举过程,包括服务器如何通过比较zxid和sid来决定投票,确保最新事务的服务器成为Leader。
9501

被折叠的 条评论
为什么被折叠?



