Ack or Nack in rabbitMQ

Deadly 提交于 2019-11-29 22:28:42

The basic.nack command is apparently a RabbitMQ extension, which extends the functionality of basic.reject to include a bulk processing mode. Both include a "bit" (i.e. boolean) flag of requeue, so you actually have several choices:

  • nack/reject with requeue=1: the message will be returned to the queue it came from as though it were a new message; this might be useful in case of a temporary failure on the consumer side
  • nack/reject with requeue=0 and a configured Dead Letter Exchange (DLX), will publish the message to that exchange, allowing it to be picked up by another queue
  • nack/reject with requeue=0 and no DLX will simply discard the message
  • ack will remove the message from the queue even if a DLX is configured

If you have no DLX configured, always using ack will be the same as nack/reject with requeue=0; however, using the logically correct function from the start will give you more flexibility to configure things differently later.

Ack and Nack both remove the message from the queue, the difference is that when you Nack a message it goes into the DLX (dead letter queue) if there is one defined for that queue.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!