Saga 模式 - AWS 方案指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Saga 模式

saga 模式是一種故障管理模式,可協助在分散式應用程式中建立一致性,並協調多個微服務之間的交易,以維持資料一致性。微服務會為每個交易發佈事件,而下一個交易會根據事件的結果啟動。它可能需要兩個不同的路徑,取決於交易的成功或失敗。

下圖顯示 saga 模式如何使用 實作訂單處理系統 AWS Step Functions。每個步驟 (例如,「ProcessPayment」) 也有單獨的步驟來處理程序的成功 (例如,「UpdateCustomerAccount」) 或失敗 (例如,「SetOrderFailure」)。

Saga 模式

在以下情況下,您應該考慮使用此模式:

  • 應用程式需要維持多個微服務之間的資料一致性,而無需緊密耦合。

  • 有長期的交易,而且如果某個微服務長時間執行,您不希望其他微服務遭到封鎖。

  • 如果 操作在序列中失敗,您需要能夠復原。

重要

模式saga很難除錯,而且其複雜性會隨著微服務的數量而增加。模式需要複雜的程式設計模型,開發和設計補償交易以復原和復原變更。

如需在微服務架構中實作saga模式的詳細資訊,請參閱 AWS 規範指引網站上的 模式使用 實作無伺服器saga模式 AWS Step Functions