現有5臺服務器,php
當服務器1啓動時,因爲當前只有1臺服務器,發出的請求無響應,所以當前選舉狀態爲Looking狀態。算法
當服務器2啓動時,與最開始的服務器1進行通訊,互相交互選舉結果,id較大的獲勝,所以服務器2勝出,但因爲沒有達到半數以上的服務器贊成要求,所以服務器1,服務器2繼續保持Looking狀態服務器
當服務器3啓動時,根據前面PK邏輯,服務器3將成爲Leader,因爲有3臺服務器支持,所以成爲Leader分佈式
當服務器4啓動時,因爲前面有服務器3成爲Leader,所以服務器4是Follower角色源碼分析
當服務器5啓動時,和4一致,服務器5角色爲Followerspa
選票信息(myid,ZXID)(myid:配置文件,ZXID:事務ID).net
優先比較ZXID,大的優先爲Leaderblog
ZXID一致,比較myid;myid大的有限Leader事務
參考資料get
《從PAXOS到ZOOKEEPER分佈式一致性原理與實踐》
zookeeper3.3.3源碼分析(二)FastLeader選舉算法