RocketMQ事務訊息的三種狀態

2021-10-10 04:47:47 字數 462 閱讀 9032

1. rollback_message:回滾事務

2. commit_message: 提交事務

3. unknow: broker會定時的回查producer訊息狀態,直到徹底成功或失敗。

當executelocaltransaction方法返回rollback_message時,表示直接回滾事務,當返回commit_message提交事務

當返回unknow時,broker會在一段時間之後回查checklocaltransaction,根據checklocaltransaction返回狀態執行事務的操作(回滾或提交),

如示例中,當返回rollback_message時消費者不會收到訊息,且不會呼叫回查函式,當返回commit_message時事務提交,消費者收到訊息,當返回unknow時,在一段時間之後呼叫回查函式,並根據status判斷返回提交或回滾狀態,返回提交狀態的訊息將會被消費者消費,所以此時消費者可以消費部分訊息

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