一、前言

  前面学习了Leader选举的总体框架,接着来学习Zookeeper中默认的选举策略,FastLeaderElection。

二、FastLeaderElection源码分析

  2.1 类的继承关系 

public class FastLeaderElection implements Election {}

  说明:FastLeaderElection实现了Election接口,其需要实现接口中定义的lookForLeader方法和shutdown方法,其是标准的Fast Paxos算法的实现,各服务器之间基于TCP协议进行选举。

  2.2 类的内部类

  FastLeaderElection有三个较为重要的内部类,分别为Notification、ToSend、Messenger。

  1. Notification类 

大数据培训,云培训,数据挖掘培训,云计算培训,高端软件开发培训,项目经理培训 Notification

  说明:Notification表示收到的选举投票信息(其他服务器发来的选举投票信息),其包含了被选举者的id、zxid、选举周期等信息,其buildMsg方法将选举信息封装至ByteBuffer中再进行发送。

  2. ToSend类  

大数据培训,云培训,数据挖掘培训,云计算培训,高端软件开发培训,项目经理培训 ToSend

  说明:ToSend表示发送给其他服务器的选举投票信息,也包含了被选举者的id、zxid、选举周期等信息。

  3. Messenger类

网友评论