关于zookeeper的节点配置的个数

使用过zookeeper的同窗都知道,集群中的zookeeper须要超过半数,整个集群对外才可用。资源

这里所谓的整个集群对外才可用,是指整个集群还能选出一个Leader来,zookeeper默认采用it

quorums来支持Leader的选举。集群

其实quorums机制有两个做用:zookeeper

  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。

相关文章
相关标签/搜索