[rabbitmq-discuss] Understanding Federation

MELIQUE Denis (MORPHO) denis.melique at morpho.com
Thu Feb 23 16:36:09 GMT 2012

Thank you Simon.

This makes it much clearer for me.
I was first surprised to see this queue always empty on my test bed,  
but the reason is (correct me if I'm wrong) 
that my system was not loaded enough, and consumers got messages as soon as they came in.

So every message consumed from the downstream is first written on disk.
This might be a disadvantage for performance.
And gives an advantage to Shovel, as you can configure it with transient queues.


-----Original Message-----
From: Simon MacMullen [mailto:simon at rabbitmq.com] 
Sent: Thursday, February 23, 2012 12:11 PM
Cc: rabbitmq-discuss at lists.rabbitmq.com
Subject: Re: [rabbitmq-discuss] Understanding Federation

On 23/02/12 10:56, MELIQUE Denis (MORPHO) wrote:
> I’m doing some testing with federation plug-in to try to understand it.



> What are these Exchange and Queues used for ?

The queue is there to buffer messages that are published to the upstream 
exchange and have not yet been consumed from the downstream exchange.

It is bound to the internal exchange with the union of all the bindings 
that are in use downstream, so we only transfer messages that are going 
to be of use downstream.

The internal exchange is there so that whenever we (re)establish a 
federation link we can set up an exact set of bindings 
mostly-atomically, by creating a new internal exchange, creating all the 
bindings to it, then binding it to the upstream exchange.

> Are they reserved for federation internal use ?


> When do messages go into these queues ?

As mentioned, the bindings are pushed upstream so messages from upstream 
go into these queues if they will be routed once they get downstream.

> Do they have to be durable or is there a way to configure them as
> transient ?

At the moment they have to be durable. Is this a problem? The idea is 
that you can set the queue TTL if you do not want them to hang around 

> I would be very interested by a brief description of how federation
> works internally.

Hopefully this answers your question.

Cheers, Simon

Simon MacMullen
RabbitMQ, VMware
" Ce courriel et les documents qui lui sont joints peuvent contenir des informations confidentielles ou ayant un caractère privé. S'ils ne vous sont pas destinés, nous vous signalons qu'il est strictement interdit de les divulguer, de les reproduire ou d'en utiliser de quelque manière que ce soit le contenu. Si ce message vous a été transmis par erreur, merci d'en informer l'expéditeur et de supprimer immédiatement de votre système informatique ce courriel ainsi que tous les documents qui y sont attachés."
" This e-mail and any attached documents may contain confidential or proprietary information. If you are not the intended recipient, you are notified that any dissemination, copying of this e-mail and any attachments thereto or use of their contents by any means whatsoever is strictly prohibited. If you have received this e-mail in error, please advise the sender immediately and delete this e-mail and all attached documents from your computer system."

More information about the rabbitmq-discuss mailing list