拜占庭将军问题究竟是什么鬼呀?

拜占庭将军问题是由计算机科学家Leslie Lamport 所提出的有关网络通信中一致性的问题。

拜占庭将军问题究竟是什么鬼呀?

什么是拜占庭将军问题呢?

在很久很久以前,拜占庭是东罗马帝国的首都。那个时候罗马帝国国土辽阔,为了防御目的,因此每个将军都分隔很远,将军与将军之间只能靠信使传递消息。

拜占庭将军问题究竟是什么鬼呀?

在打仗的时候,拜占庭军队内所有将军必须达成一致的共识,才能更好地赢得胜利,但是,在军队内有可能存在叛徒,扰乱将军们的决定。

这时候,在已知有成员不可靠的情况下,其余忠诚的将军需要在不受叛徒或间谍的影响下达成一致的协议。

莱斯利·兰伯特( Leslie Lamport )通过这个比喻,表达了计算机网络中所存在的一致性问题。这个问题被称为拜占庭将军问题。

既然提出了问题那么如何解决这个问题呢?目前业界已经有了很多成熟的解决方案,其中Raft算法是比较有代表性的,又比较好理解。

什么是 Raft 算法?Raft 算法是一种简单易懂的共识算法。它依靠 状态机 和 主从同步 的方式,在各个节点之间实现数据的一致性。

拜占庭将军问题究竟是什么鬼呀?

至此大概描述了拜占庭将军的问题是什么,对于搞算法的工程师来说,Raft应该很了解,其他人如果还想进一步了解,请自行查阅相关算法的详细资料。


分享到:


相關文章: