消息确认机制
消息確認(rèn)機(jī)制(失誤+confirm)
?
事務(wù)機(jī)制
每一次提交和請(qǐng)求的時(shí)候都會(huì)降低吞吐量(少用)
三種模式
?
txSelect:用于將當(dāng)前channel設(shè)置為(事務(wù))transation模式
txCmmit:提交事務(wù)
txRollback:回滾事務(wù)
?
代碼用例:
生產(chǎn)者:
?
消費(fèi)者:
?
?
Confirm模式
?
生產(chǎn)者confirm模式的原理
?
該模式的好處是什么?
該模式是異步的,能提高吞吐量。
?
1單條確認(rèn)(效率很低)
生產(chǎn)者:
?
2:批量確認(rèn)
?
3:異步確認(rèn)
?
生產(chǎn)者類代碼:
添加通道的監(jiān)聽:只有消息到達(dá)之后才會(huì)調(diào)回調(diào)函數(shù)。
成功了會(huì)回掉handleAck(),失敗了回掉handleNack()
?
Boolean multiple:表示返回的確實(shí)是否為多條記錄。basicAck 方法的第二個(gè)參數(shù) multiple 取值為 false 時(shí),表示通知 RabbitMQ 當(dāng)前消息被確認(rèn);如果為 true,則額外將比第一個(gè)參數(shù)指定的 delivery tag 小的消息一并確認(rèn)。對(duì)同一消息的重復(fù)確認(rèn),或者對(duì)不存在的消息的確認(rèn),會(huì)產(chǎn)生 IO 異常,導(dǎo)致信道關(guān)閉。
?
如果是多條,則把序號(hào)大于deleverTag+1的記錄全部刪除
如果是單條則指刪除序列號(hào)為deleverTag的記錄
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/domi22/p/9096006.html
總結(jié)
- 上一篇: vue init深度定制团队自己的Vue
- 下一篇: NGINX根据不同域名请求跳转同一台机器