[rabbitmq-discuss] Message Reliability
Simon MacMullen
simon at rabbitmq.com
Tue Sep 17 16:18:01 BST 2013
On 17/09/13 16:04, Jain, Punit wrote:
> ·If I get the confirmation acknowledgement, what does it mean? Is it
> message successfully delivered to “upstream queue” or “downstream exchange”?
It means it was successfully published locally.
> ·If it guarantees delivery to “downstream exchange”, then do we need to
> use message persistence?
I'm not sure how you are connecting these two concepts.
> ·If confirmation means delivery to upstream queue, then, I think, it
> makes sense to use message persistence, right? If the upstream broker
> crashes, then without message persistence, messages in upstream queue
> will be lost, right?
Yes.
> ·How does message persistence work?
Short version: messages in queues are stored on disk. It just means that
messages will survive a broker restart.
Long version:
http://hg.rabbitmq.com/rabbitmq-server/file/c4802531640a/src/rabbit_queue_index.erl#l32
http://hg.rabbitmq.com/rabbitmq-server/file/c4802531640a/src/rabbit_msg_store.erl#l177
etc.
> How long messages are persisted on
> disk? Are they removed from disk when the consumer sends the
> acknowledgement?
Messages are persisted for as long as they're in the queue, so they are
removed when they're acknowledged (or delivered in autoack mode).
> ·Or is there any other way to achieve message reliability? Any
> improvements or suggestions?
If you haven't done so already, you should read
http://www.rabbitmq.com/reliability.html.
Cheers, Simon
--
Simon MacMullen
RabbitMQ, Pivotal
More information about the rabbitmq-discuss
mailing list