Integration / RabbitMQ Interview Questions
How does RabbitMQ handle message acknowledgment?
RabbitMQ tracks every message it delivers to a consumer until that consumer confirms what happened to it, unless auto-ack was requested.
- basic.ack - the consumer processed the message successfully; it is removed from the queue.
- basic.nack / basic.reject - processing failed; the message can be requeued or sent to a dead-letter exchange depending on the
requeueflag. - No ack sent, connection drops - RabbitMQ automatically requeues the message for redelivery.
Manual acknowledgment is the safer default for anything important, because auto-ack marks a message as handled the instant it leaves the broker, even if the consumer then crashes before finishing the work.
More Related questions...