[rabbitmq-discuss] Message Reliability
Jain, Punit
Punit.Jain at emc.com
Tue Sep 17 18:29:53 BST 2013
> > *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.
By this, do you mean published on upstream (local) exchange?
>
> > *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.
I meant, if confirm guarantees delivery to downstream exchange then we can rely on it without worrying about message persistence.
>
> > *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).
>
What is the overhead of persisting messages, in terms of time and disk space?
> > *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
Thank you, Simon for detailed explanation, it really helped.
>
> --
> Simon MacMullen
> RabbitMQ, Pivotal
More information about the rabbitmq-discuss
mailing list