[rabbitmq-discuss] Re-creation of queues not allowed

Matthew Sackman matthew at lshift.net
Sat Feb 20 18:11:41 GMT 2010


Howdy,

On Sat, Feb 20, 2010 at 01:02:02PM +0530, Arun Suresh wrote:
> I noticed that  from RabbitMQ 1.7.1 onwards, re-creation of a queue on a
> live node of a rabbit cluster when the node where the queue was initially
> created goes down is disallowed.

Indeed.

> I would be really great-full if somebody would explain to me the rationale
> for this decision.. As we rely on this SPECIFIC property to address
> availability issues since Queues are currently not replicated across the
> cluster.

The rational is that in the event of the failed node coming back up, you
then have two queues with the same name. A consumer could then drain the
recovered queue, but the acks for that end up going to the newer queue,
and disappear. Thus any situation where you can end up with two queues
with the same name leads to a sudden on-rush of violent bears. The decision
was made that the most sensible thing to do was to return a 404 which is
literally saying "Yes, this looks to be a queue re-declaration, but we
*can't find* (hence 404) the queue because it's on a failed node".

> Also, It would be really awesome if somebody would explain to me what is the
> recommended approach to a situation when a node goes down.

Depends massively on your situation. Clustering in Rabbit is meant to
facilitate scalability, not high availability. If you could provide some
further details of your scenario, we'd be better able to advise.

Matthew




More information about the rabbitmq-discuss mailing list