這篇文章https://blog.csdn.net/chunlon...:給消息中間件發(fā)送消息失敗,發(fā)送方并不知道是消息中間件真的沒(méi)有收到消息呢?還是消息已經(jīng)收到了,只是返回response的時(shí)候失敗了?如果是已經(jīng)收到消息了,而發(fā)送端認(rèn)為沒(méi)有收到,執(zhí)行update db的回滾操作。則會(huì)導(dǎo)致A賬號(hào)的錢沒(méi)有扣,B賬號(hào)的錢卻加了。意思是消息中間件會(huì)出現(xiàn)收到消息,給消費(fèi)者消費(fèi)了,但是生產(chǎn)者卻收到發(fā)送失敗我好奇的是,諸如kafka,rabbitMQ,ActiveMQ會(huì)出現(xiàn)這種狀況嗎?
1 回答

慕妹3242003
TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超6個(gè)贊
理論上不會(huì)。
你可以研究一下MQ的實(shí)現(xiàn)原理。
另外,你也可以自己實(shí)現(xiàn)MQ,或者自己實(shí)現(xiàn)部分邏輯。比如添加一個(gè)握手的過(guò)程,取得發(fā)送成功回執(zhí)?;蛘咛砑右粋€(gè)確認(rèn)的過(guò)程,發(fā)送成功或者失敗之后,都去MQ查一下消息存在不。
添加回答
舉報(bào)
0/150
提交
取消