複製日誌
透過寫入前記錄,複製到所有叢集節點,讓多個節點的狀態保持同步。
問題
當多個節點共用一個狀態時,需要同步該狀態。所有叢集節點都必須同意相同的狀態,即使某些節點崩潰或斷線。這需要針對每個狀態變更請求達成共識。
但是,針對個別請求達成共識還不夠。每個複本也需要以相同的順序執行請求,否則不同的複本可能會進入不同的最終狀態,即使它們對個別請求達成共識。
解決方案
叢集節點維護一個 寫入前記錄。每個記錄條目會儲存共識所需的狀態以及使用者請求。它們會協調建立記錄條目的共識,以便所有叢集節點具有完全相同的寫入前記錄。然後,會根據記錄依序執行請求。由於所有叢集節點都同意每個記錄條目,因此它們會以相同的順序執行相同的請求。這可確保所有叢集節點共用相同的狀態。
如需更多詳細資訊,請參閱 oreilly.com 上線上電子書的 第 12 章
此模式是 分散式系統模式 的一部分
2023 年 11 月 23 日