本篇內(nèi)容介紹了“RocketMq的事務(wù)消息是什么”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
創(chuàng)新互聯(lián)建站專注骨干網(wǎng)絡(luò)服務(wù)器租用10多年,服務(wù)更有保障!服務(wù)器租用,中國(guó)電信成都樞紐中心 成都服務(wù)器租用,成都服務(wù)器托管,骨干網(wǎng)絡(luò)帶寬,享受低延遲,高速訪問(wèn)。靈活、實(shí)現(xiàn)低成本的共享或公網(wǎng)數(shù)據(jù)中心高速帶寬的專屬高性能服務(wù)器。
事務(wù)消息概念介紹
Half(Prepare)Message
消息不能傳遞,當(dāng)消息成功發(fā)送到Broker之后,Broker沒(méi)有收到Producer的二次確認(rèn)事件,消息被broker標(biāo)記為暫時(shí)不能派發(fā),這種狀態(tài)下的消息就是Half(Prepare)Message。
消息狀態(tài)校驗(yàn)
網(wǎng)絡(luò)閃斷和Productor應(yīng)用服務(wù)重啟,都會(huì)導(dǎo)致事務(wù)消息二次確認(rèn)事件的丟失,當(dāng)broker發(fā)現(xiàn)消息一直處于Half(Prepare)Message狀態(tài),就會(huì)向Productor應(yīng)用發(fā)送請(qǐng)求,確認(rèn)消息的最終狀態(tài)(派送還是回滾)。
事務(wù)消息執(zhí)行流程:
1.Producer向Broker發(fā)送Half(Prepare)Message
2.發(fā)送Half(Prepare)Message success,執(zhí)行本地事務(wù)
3.根據(jù)本地事務(wù)執(zhí)行結(jié)果,想Broker發(fā)送提交或者回滾消息
4.如果提交或者回滾消息丟失或者Producer執(zhí)行本地事務(wù)期間掛起,Broker會(huì)給同一組類的所有producer發(fā)送check消息,確認(rèn)事務(wù)最終狀態(tài)
5.Producer會(huì)根據(jù)本地事務(wù)狀態(tài)回復(fù)提交/回滾消息
6.已提交的消息將傳遞給訂閱的Consumer,但Broker服務(wù)器將丟棄已回滾的消息
詳細(xì)設(shè)計(jì)
Rocketmq為了抽象存儲(chǔ)的底層實(shí)現(xiàn),所有事務(wù)性消息操作都集中在事務(wù)服務(wù)接口上。 RocketMQ提供了一個(gè)帶有自己的存儲(chǔ)系統(tǒng)的默認(rèn)實(shí)現(xiàn),我們使用事務(wù)橋來(lái)實(shí)現(xiàn)我們的事務(wù)存儲(chǔ)邏輯,而不是直接修改RocketMQ的存儲(chǔ)層。
發(fā)送事務(wù)消息
發(fā)送事務(wù)消息時(shí)序圖,以及事務(wù)消息是如何兩階段提交的。
事務(wù)消息校驗(yàn)
事務(wù)消息檢驗(yàn)邏輯時(shí)序圖,如果事務(wù)消息一直處于Half(Prepare)Message status,Broker就會(huì)向producer發(fā)送確認(rèn)消息,驗(yàn)證事務(wù)消息的最終狀態(tài)。
“RocketMq的事務(wù)消息是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
網(wǎng)站標(biāo)題:RocketMq的事務(wù)消息是什么
本文路徑:http://chinadenli.net/article8/gicsop.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、網(wǎng)站設(shè)計(jì)公司、全網(wǎng)營(yíng)銷推廣、網(wǎng)站內(nèi)鏈、網(wǎng)站收錄、動(dòng)態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)