[rabbitmq-discuss] Regarding Federation Plugin Configuration

Simon MacMullen simon at rabbitmq.com
Mon May 13 10:25:37 BST 2013

On 11/05/2013 19:50, Jain, Punit wrote:
> Thanks Simon for prompt response and for the link. I verified the
> configuration according to my requirements, but messages are not
> being backed-up in upstream queue. Properties like expires and
> message_ttl are set to default. I couldn't figure out any plausible
> reason for this. Could it be related to exchange/queue publishing
> properties on upstream broker?

I don't think so. On a more modern RabbitMQ you could publish with low 
per-message TTL, but 2.8.2 does not support that.

My expectation is still that you are doing something weird; keeping 
messages while the link is down is a fundamental property of federation; 
if it were broken in any release I would expect to have heard about it 
by now.

So to debug this, let's look at how it's meant to work:

The downstream broker declares the upstream queue named "federation 
(exchange) -> (node)" the first time the link goes up. This queue is 
durable and is not deleted at an point. The downstream broker then binds 
this queue to the upstream exchange (via an intermediate exchange) 
whenever a binding is declared downstream.

When a link is up, the messages from the upstream exchange are routed to 
this queue and consumed immediately by the downstream broker. When a 
link goes down the consuming stops but the bindings still exist, so 
messages back up in the queue. When the link comes back, the downstream 
broker deletes and recreates all the bindings (in case they have changed 
meanwhile) and starts consuming from the queue again.

So if that's how it's meant to work, what is going wrong in your case? 
Is the queue being deleted? Are the bindings to the queue being deleted? 
Something else?

Cheers, Simon

More information about the rabbitmq-discuss mailing list