一、前言

  前面學習了Leader選舉的總體框架,接著來學習Zookeeper中默認的選舉策略,F(xiàn)astLeaderElection。

二、FastLeaderElection源碼分析

  2.1 類的繼承關系 

public class FastLeaderElection implements Election {}

  說明:FastLeaderElection實現(xiàn)了Election接口,其需要實現(xiàn)接口中定義的lookForLeader方法和shutdown方法,其是標準的Fast Paxos算法的實現(xiàn),各服務器之間基于TCP協(xié)議進行選舉。

  2.2 類的內(nèi)部類

  FastLeaderElection有三個較為重要的內(nèi)部類,分別為Notification、ToSend、Messenger。

  1. Notification類 

大數(shù)據(jù)培訓,云培訓,數(shù)據(jù)挖掘培訓,云計算培訓,高端軟件開發(fā)培訓,項目經(jīng)理培訓 Notification

  說明:Notification表示收到的選舉投票信息(其他服務器發(fā)來的選舉投票信息),其包含了被選舉者的id、zxid、選舉周期等信息,其buildMsg方法將選舉信息封裝至ByteBuffer中再進行發(fā)送。

  2. ToSend類  

大數(shù)據(jù)培訓,云培訓,數(shù)據(jù)挖掘培訓,云計算培訓,高端軟件開發(fā)培訓,項目經(jīng)理培訓 ToSend

  說明:ToSend表示發(fā)送給其他服務器的選舉投票信息,也包含了被選舉者的id、zxid、選舉周期等信息。

  3. Messenger類

網(wǎng)友評論