【学习笔记】为什么zookeeper的节点个数是奇数

【说人话的描述】

拜占廷将军典故:古罗马时代有个强大的帝国叫拜占庭,她的军队非常强大,周围有10个小国家,饱受拜占庭帝国的欺压。但是,必须同一时间有6个以上的国家进攻才有可能打败拜占庭帝国,否则就一定会战败。问题出现了,古时候军队之间的通信完全依赖于人,如果一个国家的军队里有奸细,无论是下令的将军还是传信的通信兵,都可能会使得另外9个国家收到假消息,从而造成作战失败。那么如果你是一个小国的国王,该如何判断一定会有另外5个以上的国家与你并肩作战呢?毕竟一不小心,你就亡国了。
核心原理:必须多数派,有超过一半的伙伴(zookeeper中的节点),才能确保行动一致(数据一致)。

【学习笔记】为什么zookeeper的节点个数是奇数

 

【关键技术原理】

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

2、在容错能力相同的情况下,奇数台更节省资源。2n和2n-1的允许故障的节点是相同的,2n-1更省成本。

 

参考文献:

https://blog.****.net/u010476994/article/details/79806041

https://blog.****.net/gaochao1995/article/details/39613431

https://blog.****.net/qq_39295735/article/details/89353307