2023-08-08 21:17:30來源:嗶哩嗶哩
Kakfa 官方宣稱支持事務(wù)消息,但是官方的“事務(wù)消息”和我們需要的事務(wù)消息往往不同。
Kafka 官方事務(wù)消息:解決的是在一次事務(wù)中需要發(fā)送多條消息的情況,保證多個消息之間的事務(wù)約束。即多條消息要么都發(fā)送成功,要么都發(fā)送失敗。
RocketMQ事務(wù)消息:解決的是本地事務(wù)的執(zhí)行和發(fā)消息著兩個動作的事務(wù)一致性問題。
(資料圖片)
我們一般需要的是RocketMQ這種事務(wù)消息,如寫MySQL和發(fā)MQ消息兩個動作保證事務(wù)性。
通過2PC的方式向Kafka Broker提交消息可以實(shí)現(xiàn)事務(wù)消息。
通過上圖可以看到,生產(chǎn)者啟用事務(wù)消息后,第一次向Broker發(fā)送的是一個半消息,對消費(fèi)者不可見。只有生產(chǎn)者第二次通知Broker提交消息后,此消息才對消費(fèi)者可見。而半消息是否提交是由生產(chǎn)者側(cè)的本地事務(wù)執(zhí)行情況決定的。
推演
步驟1 發(fā)送半消息 失敗 / 超時:消息生產(chǎn)者等待一段時間沒有收到Broker的消息可重試。
步驟2?MQ Server?收到消息但回復(fù)丟失了:消息生產(chǎn)者可以重試。重試并不會最終在Broker中提交兩條相同消息。通過唯一id的方式,可以保證同一條消息即使生產(chǎn)者多次發(fā)送在Broker中也只會存在唯一一條記錄。
步驟3 本地事務(wù)執(zhí)行失?。篗Q 發(fā)送方 要求MQ Server丟棄半消息(即步驟4 rollback)。
步驟4 MQ發(fā)送方要求MQ Server 提交半消息丟失:MQ Server 超時未收到步驟4的commit / rollback,通過回調(diào)接口主動查詢本地事務(wù)的狀態(tài)(步驟5 和 步驟6)。
關(guān)鍵詞:
Kakfa官方宣稱支持事務(wù)消息,但是官方的“事務(wù)消息”和我們需要的事務(wù)
導(dǎo)讀1、一、補(bǔ)充維生素D的方法多曬陽光身體在受到紫外線的照射之后,膽
在原神游戲過程中,有很多用戶們不清楚原神40楓丹前瞻節(jié)目內(nèi)容大全,接
三人一組的推理類游戲既刺激又充滿挑戰(zhàn),它融合了推理、解謎、團(tuán)隊協(xié)作
8月7日下午,安徽省阜陽市紅旗中學(xué)的會議室異常熱鬧,學(xué)校所有教師正在
格隆匯8月8日丨西子潔能(002534 SZ)公布,擬注銷子公司西子運(yùn)達(dá)(海南)
15分鐘步行或騎行能走多遠(yuǎn)?如果15分鐘內(nèi)就能抵達(dá)健身場所你是否會愛上
明宣德青花茶菊紋蓋罐。恭王府博物館供圖明宣德青釉金鐘式花缽。恭王府
比亞迪近日宣布,將與音樂科技公司Stingray合作,計劃從2023年開始在部
上汽集團(tuán)公告,2023年7月生產(chǎn)413,623輛,同比下降18 95%,其中,新能源
1、背景訂單的履約之路就是從發(fā)貨開始,看似簡單的發(fā)貨功能,其背后卻
數(shù)據(jù)中心仍然是我們?nèi)找鏀?shù)字化社會的一個重要方面,大多數(shù)企業(yè)通信都是
深入研究人工智能(AI)在交互式語音應(yīng)答(IVR)系統(tǒng)中的變革作用及其對IVR
我們生活在一個科技發(fā)達(dá)的時代,高速互聯(lián)網(wǎng)成為日常運(yùn)營和商業(yè)的支柱。
8月8日消息,最近蘋果公司已經(jīng)開始著手測試新一代高端筆記本電腦所用的