RocketMQ的事務訊息處理

2022-01-10 05:53:37 字數 646 閱讀 8361

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 系統在自己本地乙個事務裡操作同時,插入一條...