Saga模式 - AWS 規定指引

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

Saga模式

此saga模式是一種失敗管理模式,可協助建立分散式應用程式的一致性,並協調多個微服務之間的交易以維持資料一致性。微服務會針對每個交易發佈事件,並根據事件的結果起始下一個交易。它可以採取兩種不同的路徑,這取決於交易的成功或失敗。

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

Saga模式

你應該考慮使用這種模式,如果:

  • 該應用程序需要在不緊密耦合的情況下跨多個微服務保持數據一致性。

  • 有長壽的交易,如果一個微服務長時間運行,您不希望其他微服務被阻止。

  • 如果序列中的作業失敗,您必須能夠復原。

重要

該saga模式難以調試,其複雜性隨著微服務的數量而增加。該模式需要一個複雜的編程模型,該模型開發和設計補償事務以復原和撤消更改。

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