rabbitmq basicReject / basicNack / basicRecover區別

  • channel.basicReject(deliveryTag, true);

        basic.reject方法拒絕deliveryTag對應的消息,第二個參數是否requeue,true則重新入隊列,否則丟棄或者進入死信隊列。

該方法reject後,該消費者還是會消費到該條被reject的消息。

  • channel.basicNack(deliveryTag, false, true);

        basic.nack方法爲不確認deliveryTag對應的消息,第二個參數是否應用於多消息,第三個參數是否requeue,與basic.reject區別就是同時支持多個消息,可以nack該消費者先前接收未ack的所有消息。nack後的消息也會被自己消費到。

  • channel.basicRecover(true);

        basic.recover是否恢復消息到隊列,參數是是否requeue,true則重新入隊列,並且儘可能的將之前recover的消息投遞給其他消費者消費,而不是自己再次消費。false則消息會重新被投遞給自己。

 

參考:consumer-nacks

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章