seata 分布式事務

2022-07-03 14:24:14 字數 651 閱讀 2896

seata(是乙個分布式事務解決方案,內建了對at、xa、tcc、saga的支援,主要由tc  tm rm三類角色,tc(事務協調器)作為服務端,tm(事務管理器)和rm(資源管理器)工作在客戶端。 seata最大程度的保證了對應用的透明。 

at模式:

at模式是通過乙個兩階段提交的方式來管理事務,

第一階段:通過對資料庫連線的**,對分布式事務下的sql語句進行了解析。 在sql執行前後,生成了將要運算元據行的資料映象(undolog),並和sql操作一起作為乙個事物插入到資料庫中。

第二階段:在分布式操作完成後,由tm完成事物的提交或者回滾(本質上傳送提交或者回滾命令給tc服務端), 再又tc服務端通知各個分支事務進行提交或者回滾。 如果是提交操作,因為在第一階段已經完成了資料庫的事物,所以只需要刪除對應的undolog即可,如果是回滾操作,則需要根據undolog,生成對應的反向語句,更新資料庫。

在第一階段末尾,有個很重要的操作是申請全域性鎖,如果申請失敗,第一階段的事務是不會提交的,這個全域性鎖,其實就是由準備更新的表的行主鍵id組成。 如果這個時候其他事務需要更新對應行,在申請全域性鎖的時候會被拒絕,如果是查詢操作,且不能未提交讀,可以帶上for update, seata會為select for updata查詢出的資料檢查是否有全域性鎖。

我的註解版(目前僅分析了at模式):

seata分布式事務

分布式事務使用,組長有話說 1 跨服務呼叫的 兩邊都有改資料或新增資料的 都要加上本地事物 並且 發起方要加上 分布式事物 千萬別忘了啊 2 尤其是 呼叫mq的時候 3 我把用到mq的地方都加了分布式註解,漏的你們看一下。portal的託運單,確認下單後,先同步到oms,再從oms同步到tms 1....

分布式事務seata學習

1 at模式 2 tcc模式 3 saga模式 at 模式基於 支援本地 acid 事務 的 關係型資料庫 一階段 prepare 行為 在本地事務中,一併提交業務資料更新和相應回滾日誌記錄。二階段 commit 行為 馬上成功結束,自動 非同步批量清理回滾日誌。二階段 rollback 行為 通過...

分布式事務框架seata

seata at模式 at模式和xa模式一樣,都是乙個兩階段提交的事務模型,不過和xa相比,做了一些優化,這個官網著重講解了一下at的原理,之後開一節著重看下一at模式的實現原理。saga模式 另外saga還提供了一下兩種補償恢復方式 saga的優勢 saga的實現方式 在以上支付下單的流程上乙個典...