微服務(wù)架構(gòu)的事務(wù)問題
- 服務(wù)間調(diào)用操作的回滾
- 服務(wù)間調(diào)用失敗的重試問題
微服務(wù)架構(gòu)的事務(wù)問題解決
- 方法1:減少服務(wù)間調(diào)用
- 方法2:沒有服務(wù)間調(diào)用,通過消息驅(qū)動調(diào)用服務(wù)
消息驅(qū)動的分布式事務(wù)實現(xiàn)
注意的問題
- 消息中間件需要支持事務(wù)
- 如何處理重試的消息
- 發(fā)生業(yè)務(wù)異常時回滾操作
系統(tǒng)錯誤的處理 - 方法1:將出錯未處理的消息寫到失敗的隊列,進行相應(yīng)回滾操作
- 方法2:通過定時任務(wù)檢查超時訂單,對未完成的訂單做自動回滾
- 方法3:保存出錯消息,人工處理
實現(xiàn)鎖票的安全性
- 利用@jmsListener設(shè)置一個消費者,不適用于多實例
- 利用事務(wù)和數(shù)據(jù)庫鎖的特性
- 分布式鎖