rabbitmq什么时候使用基本拒绝而不是基本nack?

Sah*_*rma 14 rabbitmq

基本 nack 提供了对一条或多条消息返回否定确认的功能。

基本拒绝可以仅为一条消息返回否定确认。

我们是否有任何肯定需要基本拒绝的用例?

Ank*_*h G 20

@cantSleepNow 的答案是正确的,我还想添加一个差异,即它们的默认行为。

默认情况下,nack会将消息放回队列中以供稍后处理。您可以将设置更改为不重新排队nack

默认情况下reject,消息不会被 RabbitMQ 重新排队,而是会完全从队列中删除消息。


can*_*Now 18

使用rabbitmq,你总是可以nack过度拒绝。从逻辑上讲,没有明确需要使用reject,因为nack可以做任何reject事情。正如您所说,这两种方法都适用于一条消息,也nack适用于多条消息。

也是nack由rabbitmq引入的(所以它是一个扩展),并且不是amqp 0.9.1规范的一部分。