[rabbitmq-discuss] Mirrored queue "requeue" un-acknolwedged message in failover

Francesco Mazzoli francesco at rabbitmq.com
Thu Jul 12 17:51:07 BST 2012

At Thu, 12 Jul 2012 17:39:00 +0100,
Francesco Mazzoli wrote:
> Well the issue here is that the slave does not know if the consumer has seen the
> unacked messages that it will requeue. If repeated messages are unacceptable you
> are going to have to do some bookkeeping on the consumer side anyway, since that
> hypothetical flag would not guarantee you anything.
> Are you asking for a flag like that just to make the bookkeeping less resource
> intensive? In that case, I doubt it'd make much of a difference, since you are
> going to have to take track of all the messages anyway - the only thing that
> you'll save is the checking of some messages, but that's likely not to be the
> main problem anyway.

Turns out that a flag like this does exist in AMQP, and I had completely forgot
about it:
http://www.rabbitmq.com/amqp-0-9-1-reference.html#basic.deliver.redelivered .

This does not change the rest of my comment, that flag is going to save you from
doing a considerable amount of bookkeeping.

Another thing:

> (re-queuing of un-acknolwedged messages to the tail in the new master node)

Requeuing maintains publication order, so the are not put back at the tail of
the queue. See http://www.rabbitmq.com/semantics.html#ordering for more info.

Francesco * Often in error, never in doubt

More information about the rabbitmq-discuss mailing list