您好,登錄后才能下訂單哦!
本篇內容介紹了“RocketMq的事務消息是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
事務消息概念介紹
Half(Prepare)Message
消息不能傳遞,當消息成功發送到Broker之后,Broker沒有收到Producer的二次確認事件,消息被broker標記為暫時不能派發,這種狀態下的消息就是Half(Prepare)Message。
消息狀態校驗
網絡閃斷和Productor應用服務重啟,都會導致事務消息二次確認事件的丟失,當broker發現消息一直處于Half(Prepare)Message狀態,就會向Productor應用發送請求,確認消息的最終狀態(派送還是回滾)。
事務消息執行流程:
1.Producer向Broker發送Half(Prepare)Message
2.發送Half(Prepare)Message success,執行本地事務
3.根據本地事務執行結果,想Broker發送提交或者回滾消息
4.如果提交或者回滾消息丟失或者Producer執行本地事務期間掛起,Broker會給同一組類的所有producer發送check消息,確認事務最終狀態
5.Producer會根據本地事務狀態回復提交/回滾消息
6.已提交的消息將傳遞給訂閱的Consumer,但Broker服務器將丟棄已回滾的消息
詳細設計
Rocketmq為了抽象存儲的底層實現,所有事務性消息操作都集中在事務服務接口上。 RocketMQ提供了一個帶有自己的存儲系統的默認實現,我們使用事務橋來實現我們的事務存儲邏輯,而不是直接修改RocketMQ的存儲層。
發送事務消息
發送事務消息時序圖,以及事務消息是如何兩階段提交的。
事務消息校驗
事務消息檢驗邏輯時序圖,如果事務消息一直處于Half(Prepare)Message status,Broker就會向producer發送確認消息,驗證事務消息的最終狀態。
“RocketMq的事務消息是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。