saga分布式事務

2021-09-28 14:27:21 字數 656 閱讀 1010

補償操作

事務補償(回滾) 逆向補償

重試(立即重試 固定間隔重試 增量重試 指數重試) 正向補償

重試需要注意冪等性

saga中每個事務的參與者在收到正向操作請求時,會立即提交事務。如果發生異常,由事務協調者發出回滾請求,處理者執行回滾操作。

saga不像傳統2pc/acid事務,任何乙個事務參與者失敗,立即同步執行回滾操作,saga所有操作都是非同步執行。

原子性在saga中事務任何乙個步驟失敗,都呼叫回滾介面實現撤銷。

一致性/完整性

服務內部的本地事務由資料庫保證,跨服務的資料完整性由應用完成。

永續性由資料庫保證

隔離性saga模式決定不能保隔離性,可通過引入事件溯源實現隔離性,但並不一定適用所有場景,在saga整個事務沒有結束期間,操作都以事件的方式記錄下來,當需要查詢資料時,通過回放事件,對資料進行動態計算。

在貓眼的票務系統交易,就是用的saga分布式事務模式

下單 支付 出票 都是乙個事務,都是非同步執行

如何保證原子性的,每個事務失敗,都會呼叫事務補償(逆向流程回滾)

如何保證永續性和一致性的,通過資料庫保證,每個事務都是個任務

分布式 分布式事務

是資料庫執行過程中的乙個邏輯單位,由乙個有限的資料庫操作序列構成。事務的acid四大特性 原子性 atomicity 事務作為乙個整體被執行。一致性 consistency 從乙個一致的狀態轉換到另乙個一致的狀態。隔離性 isolation 多個事務併發執行時,併發事務之間互相影響的程度。永續性 d...

分布式事務 分布式事務的實現

如果在多個服務中需要對不同的資料庫進行操作。因為不同服務操作的資料庫都不同,所以保證在同乙個事務中完成操作顯然是不科學的。那實現分布式事務的思想 1 方法入口,建立一條日誌記錄,狀態定義為初始狀態,即儲存本條日誌記錄 可以儲存在資料庫中,也可以寫出到本地磁碟檔案 2 可以在非同步執行緒或在定時任務中...

分布式之分布式事務

被人問到分布式事務,之前學rabbitmq 的時候學到過rabbitmq 高階的事務,因為沒有用過,所有沒有回答好。這裡總結一下。1.單機版事務。事務的四大特性 acid a.原子性 b.一致性 c.隔離性 d.永續性 單機事務可以通過設定事務的隔離級別 參見spring 的事務隔離級別 2.分布式...