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