1. 程式人生 > >為什麽zookeeper的節點配置的個數必須是奇數個

為什麽zookeeper的節點配置的個數必須是奇數個

兩種 無法 最大 超過半數 情況 zookeeper 什麽 條件 節點

選舉機制(FastLeaderElection算法):sid最大且被超過集群中超過半數的機器擁護就會成為leader.
所以只有兩種情況無法選出leader:
整個集群只有2臺服務器(註意不是只剩2臺,而是集群的總節點數為2)
整個集群超過半數機器掛掉。
所謂的偶數問題其實是另一個集群優化配置問題,即:集群的容災數量=集群總節點數/2-1
假如集群有5節點,那麽最多允許2個節點掛掉,如果有3節點掛了,那麽整個集群的選舉結果不會滿足條件:集群中超過半數的機器擁護。
假如集群有6個節點,那麽最多也只能掛掉2臺,因為掛了3臺時,選舉結果也不會滿足條件:集群中超過半數的機器擁護。
結果可以看出,多那一臺用處並不大。所以集群總數推薦為奇數。

為什麽zookeeper的節點配置的個數必須是奇數個