1. 程式人生 > >Zookeeper 學習筆記之 節點個數

Zookeeper 學習筆記之 節點個數

容災 2個 工作 不必要 ade 為什麽 per 正常 lead

zookeeper的節點配置的個數推薦是奇數個這是為什麽呢?

選舉機制

兩種情況無法選出leader:

  1. 整個集群只有2臺服務器(註意不是只剩2臺,而是集群的總節點數為2)

  2. 整個集群超過半數機器掛掉。

所謂的偶數問題其實是另一個集群優化配置問題,即:集群的容災數量=集群總節點數/2-1

集群中只要有過半的機器是正常工作的,那麽整個集群對外就是可用的。也就是說如果有2個zookeeper,那麽只要有1個死了zookeeper就不能用了,因為1沒有過半,所以2個zookeeper的死亡容忍度為0;同理,要是有3個zookeeper,一個死了,還剩下2個正常的,過半了,所以3個zookeeper的容忍度為1;

同理你多列舉幾個:

2 容忍度0

3 容忍度1

4 容忍度1

5 容忍度2

6 容忍度2

會發現一個規律,2n和2n-1的容忍度是一樣的,都是n-1,奇數為5,而偶數為6,也就是6個zookeeper服務的情況下最多能宕掉2個服務,所以從節約資源的角度看,沒必要部署6(偶數)個zookeeper服務。為了更加高效,沒必要增加一個不必要的zookeeper。

Zookeeper 學習筆記之 節點個數