檢視原始碼的分支是master-1.2.x 時間2018.04.12
也是通過aop攔截業務方法,業務方法上帶有compensable註解
1 剛開始是trying階段,先建立事務日誌,狀態為trying,然後進入業務方法發起rpc操作,鏈式的呼叫提供者的帶有compensable註解的業務方法,當某乙個發起者不是root型別,則會使用rpc操作傳過來的transactioncontext中的事務id建立事務日誌
2 當最低層的提供者業務呼叫完之後,返回到上一層呼叫者的時候,如果沒有錯誤,這進入confirm階段,將事務日誌狀態設定為confirm,然後呼叫所有使用到的提供者的confirm方法,這裡對於每乙個發起者呼叫的提供者方法都會記錄在participant中,cancel類似。
問題如果trying階段 過程中發起rpc操作,然後掛了,這時候日誌資訊狀態是trying,但是看事務日誌只處理了confirm和cancel。
看到第二個分支如果是cancel或者root型別的會rollback。
分布式事務 中介軟體方案
高效能的分布式事務框架 相容dubbo springcloud框架,支援rpc框架拓展,支援各種orm框架 nosql 負載均衡 事務補償 事務模式說明 tcc是使用者自己實現提交回滾業務,lcn是框架 jdbc connection實現提交回滾業務,txc是框架分析業務sql提前提交,在需要回滾時...
分布式訊息中介軟體
一 分布式訊息中介軟體入門 訊息中介軟體主要實現分布式系統中解耦 非同步訊息 流量銷鋒 日誌處理等場景。現在生產中用得最多的訊息佇列有 activemq,rabbitmq,kafka,rocketmq 等。jms 規範 類似於 jdbc 的一套介面規範,但不同的是他是面向的訊息服務,提供一套標準 a...
基於訊息中介軟體的分布式事務
關於分布式事務的實現,網上有很多解說,當然這也是面試官的常備面試題。很多朋友在工作中很少接觸到分布式事務,認為這個玩意互動太多,沒必要。其實我也是這麼想的,想要完成乙個完整的分布式事務鏈路,通訊開銷實在太多。而現如今,微服務架構在行業內大行其道,恨不得所有模組都用上微服務來管理,而不知道自己已經慢慢...