亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

為什么Zookeeper集群節點數量要是奇數個

發布時間:2021-12-23 17:11:00 來源:億速云 閱讀:192 作者:柒染 欄目:大數據

這篇文章給大家介紹為什么Zookeeper集群節點數量要是奇數個,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

為什么Zookeeper集群節點數量要是奇數個?大家在工作中,用到的Zookeeper集群的節點個數都是奇數個。至于為什么要是奇數個,可能都知道是為了滿足選舉需要,并不知道詳細的原因。本文主要說下原因和原理,以免在面試過程中被Pass。

首先需要明確zookeeper選舉的規則:leader選舉,要求 可用節點數量 > 總節點數量/2  。注意 是 > , 不是 ≥。

注:為什么規則要求 可用節點數量 > 集群總節點數量/2 ? 如果不這樣限制,在集群出現腦裂的時候,可能會出現多個子集群同時服務的情況(即子集群各組選舉出自己的leader), 這樣對整個zookeeper集群來說是紊亂的。換句話說,如果遵守上述規則進行選舉,即使出現腦裂,集群最多也只能出現一個子集群可以提供服務的情況(能滿足節點數量> 總結點數量/2 的子集群最多只會有一個)。所以要限制 可用節點數量 > 集群總節點數量/2 。

采用奇數個的節點主要是出于兩方面的考慮:

1、防止由腦裂造成的集群不可用。

首先,什么是腦裂?集群的腦裂通常是發生在節點之間通信不可達的情況下,集群會分裂成不同的小集群,小集群各自選出自己的master節點,導致原有的集群出現多個master節點的情況,這就是腦裂。

下面舉例說一下為什么采用奇數臺節點,就可以防止由于腦裂造成的服務不可用:

(1) 假如zookeeper集群有 5 個節點,發生了腦裂,腦裂成了A、B兩個小集群: 

     (a) A :1個節點 ,B :4個節點 

     (b) A :2個節點, B :3個節點  

    可以看出,上面這兩種情況下,A、B中總會有一個小集群滿足 可用節點數量 > 總節點數量/2 。所以zookeeper集群仍然能夠選舉出leader , 仍然能對外提供服務,只不過是有一部分節點失效了而已。

(2) 假如zookeeper集群有4個節點,同樣發生腦裂,腦裂成了A、B兩個小集群:

    (a) A:1個節點 ,  B:3個節點 

    (b) A:2個節點 , B:2個節點

    可以看出,情況(a) 是滿足選舉條件的,與(1)中的例子相同。但是情況(b) 就不同了,因為A和B都是2個節點,都不滿足 可用節點數量 > 總節點數量/2 的選舉條件, 所以此時zookeeper就徹底不能提供服務了。

綜合上面兩個例子可以看出:在節點數量是奇數個的情況下, zookeeper集群總能對外提供服務(即使損失了一部分節點);如果節點數量是偶數個,會存在zookeeper集群不能用的可能性(腦裂成兩個均等的子集群的時候)。

在生產環境中,如果zookeeper集群不能提供服務,那將是致命的 , 所以zookeeper集群的節點數一般采用奇數個。

2、在容錯能力相同的情況下,奇數臺更節省資源。

leader選舉,要求 可用節點數量 > 總節點數量/2  。注意 是 > , 不是 ≥。

舉兩個例子:

(1) 假如zookeeper集群1 ,有3個節點,3/2=1.5 ,  即zookeeper想要正常對外提供服務(即leader選舉成功),至少需要2個節點是正常的。換句話說,3個節點的zookeeper集群,允許有一個節點宕機。

(2) 假如zookeeper集群2,有4個節點,4/2=2 , 即zookeeper想要正常對外提供服務(即leader選舉成功),至少需要3個節點是正常的。換句話說,4個節點的zookeeper集群,也允許有一個節點宕機。

那么問題就來了, 集群1與集群2都有 允許1個節點宕機 的容錯能力,但是集群2比集群1多了1個節點。在相同容錯能力的情況下,本著節約資源的原則,zookeeper集群的節點數維持奇數個更好一些。

關于為什么Zookeeper集群節點數量要是奇數個就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

璧山县| 绵竹市| 谢通门县| 南昌市| 荆门市| 岚皋县| 商河县| 洪江市| 长子县| 乐东| 长垣县| 辽宁省| 岳阳市| 历史| 永福县| 神木县| 怀仁县| 新蔡县| 昌都县| 磐石市| 平邑县| 开平市| 昭觉县| 惠水县| 钟山县| 牟定县| 思茅市| 林州市| 谢通门县| 松潘县| 华容县| 兴化市| 洪泽县| 高阳县| 南投县| 江口县| 拜泉县| 娱乐| 宁津县| 三江| 桃江县|