關於zookeeper的節點配置的個數


使用過zookeeper的同學都知道,集群中的zookeeper需要超過半數,整個集群對外才可用。

這里所謂的整個集群對外才可用,是指整個集群還能選出一個Leader來,zookeeper默認采用

quorums來支持Leader的選舉。

其實quorums機制有兩個作用:

  1.可以保證集群中選舉出leader,且是唯一的一個,不會出現腦裂(split-brain)。

  2.當客戶端更新數據時,當大多數節點更新成功,客戶端就會被通知更新成功了,

  3. 其他節點可以稍后再更新,以致達到數據的最終一致性

就是說如果有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,所以為了更加高效,和節省資源,2n和2n-1作用一樣只需2n-1即可,不必增加那一個不必要的zookeeper。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM