Zookeeper选举原理——FastLeaderElection
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                Zookeeper选举原理——FastLeaderElection
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                轉載自??Zookeeper選舉原理
作為一個分布式應用程序協調服務,在大型網站中,其本身也是集群部署的,安裝zookeeper的時候最好是單數節點,因為要選舉。Zookeeper的leader節點是集群工作的核心,用來更新并保證leader和server具有相同的系統狀態,Follower服務器是Leader的跟隨者,用于接收客戶端的請求并向客戶端返回結果,在選舉過程中參與投票。對于客戶端來說,每個zookeeper都是一樣的。
zookeeper提供了三種選擇策略:
- LeaderElection
 - AuthFastLeaderElection
 - FastLeaderElection
 
這里僅介紹默認的算法:FastLeaderElection。
基礎概念
- Sid:服務器id;
 - Zxid:服務器的事務id,數據越新,zxid越大;
 - epoch:邏輯時鐘,在服務端是一個自增序列,每次進入下一輪投票后,就會加1;
 -  
server狀態:
- Looking(選舉狀態)
 - Leading(領導者狀態,表明當前server是leader)
 - Following(跟隨者狀態,表明當前server是Follower)
 - Observing(觀察者狀態、表明當前server是Observer)。
 
 
選舉步驟
當系統啟動或者leader崩潰后,就會開始leader的選舉。
處理投票。對自己的投票和接收到的投票進行PK:
- 先檢查zxid,較大的優先為leader;
 - 如果zxid一樣,sid較大的為leader; 
根據PK結果更新自己的投票,在次發送自己的投票;
 
補充說明:
在步驟2發送投票的時候,投票的信息除了sid和zxid,還有:
- electionEpoch:邏輯時鐘,用來判斷多個投票是否在同一輪選舉周期中,該值在服務端是一個自增序列,每次進入新一輪的投票后,都會對該值進行加1操作。
 - peerEpoch:被推舉的Leader的epoch。
 - state:當前服務器的狀態。
 
https://www.cnblogs.com/felix...
https://www.cnblogs.com/leesf...
https://www.cnblogs.com/ASPNE...
總結
以上是生活随笔為你收集整理的Zookeeper选举原理——FastLeaderElection的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 兄弟呀想你了是什么歌 兄弟想你了完整歌词
 - 下一篇: 发糖是什么意思