一、前言

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

二、FastLeaderElection源碼分析

  2.1 類的繼承關(guān)系 

public class FastLeaderElection implements Election {}

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

  2.2 類的內(nèi)部類

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

  1. Notification類 

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

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

  2. ToSend類  

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

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

  3. Messenger類

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式