作者:xhl583337984 | 来源:互联网 | 2023-10-12 11:41
【说人话的描述】
拜占廷将军典故:古罗马时代有个强大的帝国叫拜占庭,她的军队非常强大,周围有10个小国家,饱受拜占庭帝国的欺压。但是,必须同一时间有6个以上的国家进攻才有可能打败拜占庭帝国,否则就一定会战败。问题出现了,古时候军队之间的通信完全依赖于人,如果一个国家的军队里有奸细,无论是下令的将军还是传信的通信兵,都可能会使得另外9个国家收到假消息,从而造成作战失败。那么如果你是一个小国的国王,该如何判断一定会有另外5个以上的国家与你并肩作战呢?毕竟一不小心,你就亡国了。
核心原理:必须多数派,有超过一半的伙伴(zookeeper中的节点),才能确保行动一致(数据一致)。
【关键技术原理】
1、防止由脑裂造成的集群不可用。
2、在容错能力相同的情况下,奇数台更节省资源。2n和2n-1的允许故障的节点是相同的,2n-1更省成本。
参考文献:
https://blog.csdn.net/u010476994/article/details/79806041
https://blog.csdn.net/gaochao1995/article/details/39613431
https://blog.csdn.net/qq_39295735/article/details/89353307