zk選舉過程

2021-09-19 08:44:53 字數 991 閱讀 3220

zk集群的執行模式

1.名詞解釋:

client:使用zk集群服務的客戶端

leader:zk集群真正對外服務的機器,乙個zk集群只有一台leader伺服器

flower:zk集群中除leader伺服器的其他伺服器

zk集群中每個機器都是通過tcp實現連線,通過心跳的機制檢測服務是否正常

2.leader選舉

在zk集群執行的過程中,免不了會出現集群節點掛掉的情況

集群節點掛掉分為兩種情況1.flower節點掛掉 2.leader節點掛掉

flower節點掛掉後不會對集群產生影響,還是通過leader節點對外服務

leader節點掛掉後就會發生leader選舉

選舉的過程分為四步

1)變更狀態

leader節點掛掉後,所有flower節點將自己從flowing狀態轉為looking狀態

2)每個server節點發起投票

投票內容為(myid,zxid)

3)接收每個節點發來的投票

集群中每台機器都會接收到其他機器的投票資訊,首先會判斷投票的有效性,是否是本輪投票,是否來自looking狀態的機器

4)處理投票

優先檢查zxid,zxid較大的優先作為leader

如果zxid相同的話,那麼就比較myid,myid較大的作為leader

5)統計投票資訊

每次投票後會統計所有投票,判斷是否有過半的機器收到了相同的投票資訊

6)改變服務狀態

一旦確定了leader,leader伺服器會將自身狀態改為leading,而fllower會降自己的狀態改為fllowing

名詞解釋:

sid:伺服器id

就是配置在myid檔案中的整型數字,要求集群中唯一

zxid:事務id

用來標識一次伺服器狀態的變更,在某乙個時刻,不同機器的zxid可能是不同的

vote:投票

leader選舉

quorum:過半機器數

MongoDB的選舉過程

mongodb的複製集具有自動容忍部分節點宕機的功能,在複製集出現問題時時,會觸發選舉相關的過程,完成主從節點自動切換.每個複製集成員都會在後台執行與複製集所有節點的心跳執行緒,在兩種情況下會觸發狀態檢測過程 在狀態檢測過程大致包含以下步驟 如果所有條件滿足,則將自身新增到主節點備用列表中,否則,將...

zookeeper的選舉過程

ookeeper的選舉過程大致如下 選出乙個在n 2 1個節點中選出乙個節點為主節點 比如三個組成的集群 n 2 1 2 第二台是master 比如三個組成的集群 n 2 1 3 第三台是master zookeeper的選舉過程,就是選出乙個在n 2 1個節點中選出乙個節點為主節點的過程。比如,當...

zookeeper Leader的選舉過程

假如有三個節點 s1,s2,s3 組成的集群。在集群啟動過程中,當有一台zookeeper節點s1啟動完成後,此時集群中只有乙個節點無法進行leader的選舉。當第二個節點s2啟動成功後,此時兩個節點可以正常通訊,進入leader的選舉過程,具體如下 每乙個節點都是自私的,各自都投自己1票。每次投票...