拜占庭將軍問題究竟是什麼鬼呀?

拜占庭將軍問題是由計算機科學家Leslie Lamport 所提出的有關網絡通信中一致性的問題。

拜占庭將軍問題究竟是什麼鬼呀?

什麼是拜占庭將軍問題呢?

在很久很久以前,拜占庭是東羅馬帝國的首都。那個時候羅馬帝國國土遼闊,為了防禦目的,因此每個將軍都分隔很遠,將軍與將軍之間只能靠信使傳遞消息。

拜占庭將軍問題究竟是什麼鬼呀?

在打仗的時候,拜占庭軍隊內所有將軍必須達成一致的共識,才能更好地贏得勝利,但是,在軍隊內有可能存在叛徒,擾亂將軍們的決定。

這時候,在已知有成員不可靠的情況下,其餘忠誠的將軍需要在不受叛徒或間諜的影響下達成一致的協議。

萊斯利·蘭伯特( Leslie Lamport )通過這個比喻,表達了計算機網絡中所存在的一致性問題。這個問題被稱為拜占庭將軍問題。

既然提出了問題那麼如何解決這個問題呢?目前業界已經有了很多成熟的解決方案,其中Raft算法是比較有代表性的,又比較好理解。

什麼是 Raft 算法?Raft 算法是一種簡單易懂的共識算法。它依靠 狀態機 和 主從同步 的方式,在各個節點之間實現數據的一致性。

拜占庭將軍問題究竟是什麼鬼呀?

至此大概描述了拜占庭將軍的問題是什麼,對於搞算法的工程師來說,Raft應該很瞭解,其他人如果還想進一步瞭解,請自行查閱相關算法的詳細資料。


分享到:


相關文章: