【Zookeeper】原始碼分析之Leader選舉(一)

leesf發表於2017-03-03

一、前言

  分析完了Zookeeper中的網路機制後,接著來分析Zookeeper中一個更為核心的模組,Leader選舉。

二、總結框架圖

  對於Leader選舉,其總體框架圖如下圖所示

  

  說明:

  選舉的父介面為Election,其定義了lookForLeader和shutdown兩個方法,lookForLeader表示尋找Leader,shutdown則表示關閉,如關閉服務端之間的連線。

  AuthFastLeaderElection,同FastLeaderElection演算法基本一致,只是在訊息中加入了認證資訊,其在3.4.0之後的版本中已經不建議使用。

  FastLeaderElection,其是標準的fast paxos演算法的實現,基於TCP協議進行選舉。

  LeaderElection,也表示一種選舉演算法,其在3.4.0之後的版本中已經不建議使用。

三、Election原始碼分析 

public interface Election {
    public Vote lookForLeader() throws InterruptedException;
    public void shutdown();
}

  說明:可以看到Election介面定義的方法相當簡單。

四、總結

  本篇講解了Leader選舉的Election介面,其是Leader選舉的父介面,關於具體子類的實現,之後會詳細進行分析,謝謝各位園友的觀看~

相關文章