[rabbitmq-discuss] Persistent messages and durable queue questions
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
"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
I am concerned though that there may be use cases where the current
behaviour is the correct one.
More information about the rabbitmq-discuss