rabbitmq basicReject/basicNack/basicRecover的區(qū)別及說(shuō)明
rabbitmq basicReject/basicNack/basicRecover區(qū)別
channel.basicReject(deliveryTag, true);
basic.reject方法拒絕deliveryTag對(duì)應(yīng)的消息,第二個(gè)參數(shù)是否requeue,true則重新入隊(duì)列,否則丟棄或者進(jìn)入死信隊(duì)列。
該方法reject后,該消費(fèi)者還是會(huì)消費(fèi)到該條被reject的消息。
channel.basicNack(deliveryTag, false, true);
basic.nack方法為不確認(rèn)deliveryTag對(duì)應(yīng)的消息,第二個(gè)參數(shù)是否應(yīng)用于多消息,第三個(gè)參數(shù)是否requeue,與basic.reject區(qū)別就是同時(shí)支持多個(gè)消息,可以nack該消費(fèi)者先前接收未ack的所有消息。
nack后的消息也會(huì)被自己消費(fèi)到。
channel.basicRecover(true);
basic.recover是否恢復(fù)消息到隊(duì)列,參數(shù)是是否requeue,true則重新入隊(duì)列,并且盡可能的將之前recover的消息投遞給其他消費(fèi)者消費(fèi),而不是自己再次消費(fèi)。
false則消息會(huì)重新被投遞給自己。
rabbitmq-BasicReject
拒收,是接收端在收到消息的時(shí)候響應(yīng)給RabbitMQ服務(wù)的一種命令,告訴服務(wù)器不應(yīng)該由我處理,或者拒絕處理,扔掉。
接收端在發(fā)送reject命令的時(shí)候可以選擇是否要重新放回queue中。
如果沒(méi)有其他接收者監(jiān)控這個(gè)queue的話,要注意一直無(wú)限循環(huán)發(fā)送的危險(xiǎn)。
BasicDeliverEventArgs ea = (BasicDeliverEventArgs)consumer.Queue.Dequeue(); channel.BasicReject(ea.DeliveryTag, false);
BasicReject方法第一個(gè)參數(shù)是消息的DeliveryTag,對(duì)于每個(gè)Channel來(lái)說(shuō),每個(gè)消息都會(huì)有一個(gè)DeliveryTag,一般用接收消息的順序來(lái)表示:1,2,3,4 等等。
第二個(gè)參數(shù)是是否放回queue中,requeue。
BasicReject一次只能拒絕接收一個(gè)消息,而BasicNack方法可以支持一次0個(gè)或多個(gè)消息的拒收,并且也可以設(shè)置是否requeue。
channel.BasicNack(3, true, false);
在第一個(gè)參數(shù)DeliveryTag中如果輸入3,則消息DeliveryTag小于等于3的,這個(gè)Channel的,都會(huì)被拒收
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解Spring如何解決循環(huán)引用的問(wèn)題
在Spring框架中,當(dāng)兩個(gè)或多個(gè)Bean之間存在相互依賴關(guān)系時(shí),可能會(huì)導(dǎo)致循環(huán)引用的問(wèn)題,循環(huán)引用指的是兩個(gè)或多個(gè)Bean之間互相依賴,形成一個(gè)循環(huán)鏈,本文將和大家一起探討Spring如何解決循環(huán)引用的問(wèn)題,感興趣的小伙伴跟著小編一起來(lái)看看吧2023-08-08Java Date類常用示例_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
在JDK1.0中,Date類是唯一的一個(gè)代表時(shí)間的類,但是由于Date類不便于實(shí)現(xiàn)國(guó)際化,所以從JDK1.1版本開始,推薦使用Calendar類進(jìn)行時(shí)間和日期處理。這里簡(jiǎn)單介紹一下Date類的使用,需要的朋友可以參考下2017-05-05SpringBoot如何進(jìn)行對(duì)象復(fù)制的實(shí)踐
本文主要介紹了SpringBoot 如何進(jìn)行對(duì)象復(fù)制,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09maven多模塊項(xiàng)目依賴管理與依賴?yán)^承詳解
這篇文章主要介紹了maven多模塊項(xiàng)目依賴管理與依賴?yán)^承詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12