zcanxue 2019-05-06
zk需要当即后,剩下过半才可提供服务的说法
只有一台无法实现选主,无法集群:3台服务器组成集群,其中两台关闭仅剩一台,则客户端无法连接上zookeeper
2台即以上可以选主,基数和偶数的容错率一样,所以没有必要偶数
就是说如果有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。
参考:
https://www.cnblogs.com/smy-yaphet/p/10369310.html
http://blog.itpub.net/31441024/viewspace-2212546/
https://blog.csdn.net/zhenglichenboy/article/details/79925595