更新時間:2021年06月17日16時54分 來源:傳智教育 瀏覽次數(shù):
Zookeeper為了保證各節(jié)點的協(xié)同工作,在工作時需要一個Leader角色,而Zookeeper默認采用FastLeaderElection算法,且投票數(shù)大于半數(shù)則勝出的機制,再介紹選舉機制前,首先了解選舉涉及的相關概念。
1.服務器ID
這是在配置集群時設置的myid參數(shù)文件,且參數(shù)分別表示為服務器1、服務器2、服務器3,編號越大在FastLeaderElection算法中的權重越大。
2.選舉狀態(tài)
在選舉過程中,Zookeeper服務器有四種狀態(tài),它們分別為競選狀態(tài)(LOOKING)、隨從狀態(tài)(FOLLOWING,同步leader狀態(tài),參與投票)、觀察狀態(tài)(OBSERVING,同步leader狀態(tài),不參與投票)、領導者狀態(tài)(LEADING)。
3.數(shù)據(jù)ID
是服務器中存放的最新數(shù)據(jù)版本號,該值越大則說明數(shù)據(jù)越新,在選舉過程中數(shù)據(jù)越新權重越大。
4.邏輯時鐘
通俗的講,邏輯時鐘被稱為投票次數(shù),同一輪投票過程中的邏輯時鐘值是相同的,邏輯時鐘起始值為0,每投完一次票,這個數(shù)據(jù)就會增加。然后,與接收到其它服務器返回的投票信息中的數(shù)值相比較,根據(jù)不同的值做出不同的判斷。如果某臺機器宕機,那么這臺機器不會參與投票,因此邏輯時鐘也會比其他的低。