1. 程式人生 > >分散式事務實現方式

分散式事務實現方式

一、TCC(try-confirm/cancel)

try過程是資源預留的過程,只有當兩次資源預留都成功了之後,再執行confrim,如果其中一個失敗了,就執行cancel,回滾

二、訊息事務(最終一致)

通過訊息中介軟體來實現分散式事務,如上圖所示:

1⃣️ 1失敗,整個事務失敗;

2⃣️ 2失敗,本地事務不執行,整個事務失敗;

3⃣️ 4失敗,A系統一般會提供一個反向check的介面,訊息中介軟體會不斷來查詢本地事務是否執行成功,如果發現本地事務失敗,則刪除預留訊息;

4⃣️ 5失敗,同3⃣️,訊息中介軟體check本地事務成功,於是將預留訊息傳送給B系統;

5⃣️ 6失敗,傳送預留訊息;

6⃣️ 8失敗,沒有收到B系統的確認訊息,就階梯時間間隔重新發送訊息,直到收到確認的訊息;

7⃣️ 9失敗,返回訊息中介軟體失敗,訊息中介軟體重新發送訊息,直到B系統返回成功;

8⃣️ 10失敗,其實8、9、10都一樣,只有訊息中介軟體沒有收到確認的訊息,就會一直髮送訊息給B系統,確保B本地事務執行成功