Alibaba微服务事务Seata源码深度剖析 - 笔记
生活随笔
收集整理的這篇文章主要介紹了
Alibaba微服务事务Seata源码深度剖析 - 笔记
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
問題
模擬異常產生后,order服務正常回滾,訂單沒有真正被保存。
但product服務的remoteStoreService遠程調用被正常執行了
使用GlobalTransactional解決問題
跑起來seata-server之后,再跑起來其他的服務
執行前:
order表
product表
執行后,product表也不變:
seata 如何使用?文檔:
省略
在本例中,order服務相當于RM的角色,product服務相當于TM的角色,seata-server是的角色TC,相當于協調者,決定前面兩個事務是提交還是回滾。
下圖可理解為Spring事務核心代碼的偽代碼,也可以類比為seata事務的原理
有異常,則回滾;無異常,則提交
開啟全局事務,就是往下面這張表里面寫一條記錄:
代理了原生jdbc的:
- 用于執行sql的PrepareStatement
- connection
注冊分支事務:向branch_table和lock_table分別寫一條數據
總結
以上是生活随笔為你收集整理的Alibaba微服务事务Seata源码深度剖析 - 笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Redis】新浪微博与微信Redis架
- 下一篇: CPU缓存一致性协议MESI - 笔记