分佈式事務框架 Seata

Seata 的3個基本組成部分

事務協調器(TC):維護全局事務和分支事務的狀態,驅動全局提交或回滾。
事務管理器(TM):用於開啓全局事務、提交或者回滾全局事務,是全局事務的開啓者。
資源管理器(RM):用於分支事務上的資源管理,向TC註冊分支事務,上報分支事務的狀態,接受TC的命令來提交或者回滾分支事務。

Seata管理的分佈式事務的典型生命週期

  1. TM向TC請求發起一個全局事務,TC返回一個代表這個全局事務的XID。
  2. XID通過微服務的調用鏈傳播。
  3. 每個RM拿到XID後向TC發起一個分支事務,TC返回一個代表這個分支事務的XID。
  4. RM完成本地分支的業務,提交本地分支,並且報告給TC。
  5. 局事務調用鏈處理完畢,TM根據有無異常向TC發起全局事務的提交或者回滾。
  6. 假設某個RM本地事務失敗。該RM自身驅動本地事務回滾,並且報告給TC。
  7. TM檢測到了某個分支事務失敗,向TC發起全局事務回滾。
  8. TC給每一個RM發送消息,通知它們全部回滾。
  9. TC將全局事務回滾的結果發送給TM,全局事務結束。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章