Integration / RabbitMQ Interview Questions
How is message persistence achieved in RabbitMQ?
Persistence in RabbitMQ is opt-in and requires configuration on both the queue and the message, not just one of them.
- Declare the queue as durable so RabbitMQ remembers it exists after a restart.
- Publish the message with the persistent delivery mode (
delivery_mode=2), so the broker writes its body to disk. - Optionally combine with publisher confirms, so the producer only treats the message as safe after the broker confirms the disk write.
channel.basic_publish( exchange='orders', routing_key='order.created', body=payload, properties=pika.BasicProperties(delivery_mode=2) )
Note that persistence protects against a broker crash/restart, but it does not by itself protect against the loss of the single disk that node is running on - that is what replicated quorum queues are for.
More Related questions...