[rabbitmq-discuss] Persistent messages and durable queue questions

Matthias Radestock matthias at rabbitmq.com
Mon Jul 18 11:02:41 BST 2011


On 08/07/11 18:23, Elias Levy wrote:
> We want to ensure that, if the queue is not reachable and there is a
> binding that matches the message to the queue, or the queue is not
> reachable and there is no binding that matches the message to the queue,
> (i.e. that the cluster has lost the node to which the queue is attached
> or the queue was deleted), that the producer will get a nack.  Publisher
> confirm fails here.
> [...]
> What is needed is a way to define a binding as durable, so that it won't
> be forgotten if the queue is references goes away because of a cluster
> partition or the queue is deleted.  It gives the system a hint that the
> queue in question should exist, but does not.  Alternatively, the system
> should not forget a durable queue just because the node it was attached
> goes away.  A durable queue should only be forgotten if it is actively
> deleted.

"absent" durable queues are only forgotten for routing purposes. 
RabbitMQ prevents re-creation of these queues since that would result in 
inconsistency when the node re-joins.

We could change things s.t. absent durable queues still participate in 
routing and that confirms return a 'nack' when messages are routed to 
such queues.

I am concerned though that there may be use cases where the current 
behaviour is the correct one.



More information about the rabbitmq-discuss mailing list