一、前言
分析完了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選舉的父介面,關於具體子類的實現,之後會詳細進行分析,謝謝各位園友的觀看~