zookeeper 集群为何选择奇数台机器

zookeeper集群一大特性是只要集群中半数以上的节点存活,集群就可以正常提供服务,

  • 2台服务器,至少2台正常运行才行(2的半数为1,半数以上最少为2),正常运行1台服务器都不允许挂掉

  • 3台服务器,至少2台正常运行才行(3的半数为1.5,半数以上最少为2),正常运行可以允许1台服务器挂掉

  • 4台服务器,至少3台正常运行才行(4的半数为2,半数以上最少为3),正常运行可以允许1台服务器挂掉

  • 5台服务器,至少3台正常运行才行(5的半数为2.5,半数以上最少为3),正常运行可以允许2台服务器挂掉

  • 6台服务器,至少3台正常运行才行(6的半数为3,半数以上最少为4),正常运行可以允许2台服务器挂掉

  • 通过以上可以发现,3台服务器和4台服务器都最多允许1台服务器挂掉,5台服务器和6台服务器都最多允许2台服务器挂掉

  • 但是明显4台服务器成本高于3台服务器成本,6台服务器成本高于5服务器成本。这是由于半数以上投票通过决定的。

  • 而2n+1台和2n+2台机器的容灾能力相同,都是允许n台机器宕机。本着节约的宗旨,一般选择部署2n+1台机器,可以解决容错问题。

你可能感兴趣的:(zookeeper 集群为何选择奇数台机器)