producer 傳送half message
到broker中;
broker接收到half message
後給producer傳送成功的發聵,這時,half message
才算真正生成完了;
producer執行本地事務;
producer根據第3步得到執行本地事務的結果,向mq進行二次確認(到底是commit
還是roll back
)。如果是commit
就將這個half message
變為消費者可以消費的訊息
,此時消費者接收到這條half message
。如果是roll back
,那麼mq就將這條half message
丟棄掉;
如果mq
在第4步的時候,拿不到producer執行完本地事務的結果,那麼告知producer要進行回查;
producer 查詢執行本地事務結果;
producer根據第6步返回的結果再次執行第4步;
RocketMQ 事務訊息
一 事務訊息實現方式 應用使用事務訊息的步驟 1 應用傳送訊息,使用prepare欄位標示準備訊息 2 應用執行本地業務邏輯 3 應用傳送事務提交或回滾訊息 broker收到prepare訊息後會將topic替換為rmq sys trans half topic,queueid替換為0,然後寫入co...
RocketMQ事務訊息思路
通過訊息佇列 rocketmq 事務訊息,能達到分布式事務的最終一致。模擬a賬戶轉賬給b賬戶操作,這個分布式事務有兩個子事務 子事務a areducetransaction 代表a賬戶扣款 子事務b bincreasetransaction 代表b賬戶收款 一 向訊息佇列伺服器傳送半訊息 半訊息無法...
RocketMQ之事務訊息
由於工作流引擎專案中,工作流引擎服務和業務服務是分開的,所以就涉及到了分布式事務的問題。綜合考慮到併發量和分布式事務的保障,最終選擇了事務訊息的方式。首先我們來介紹下本地訊息表這種方案,當訊息佇列不支援事務訊息的時候,我們可以考慮這種方案。基本流程 1 a 系統在自己本地乙個事務裡操作同時,插入一條...