[rabbitmq-discuss] Federation vs Shovel

Simon MacMullen simon at rabbitmq.com
Sun Mar 23 11:08:40 GMT 2014


On 21/03/2014 16:25, Danny Beutler wrote:
> Using Federation, I am not fully aware of what would happen. Say I have
> a fanout exchange configured at Site A. A queue at Site A connects to
> this queue for local consumption of the messages. Site B then attaches
> to the exchange via federation. My understanding is that there is then
> an upstream queue created.

Yes.

> If Site B then goes offline, what happens to
> the messages published to the fanout exchange in Site A. Will the
> messages sit in the upstream queue until both the queue and the remote
> are available to fanout messages to?

They will sit in the upstream queue until site B comes back, then be 
republished there.

> 2) Shovel has "More Control" according to the documentation.

"More control" is a bit vague, but I am not quite sure how to improve 
it. It means that shovel is a lower-level tool; you're responsible for 
the wiring and it's a bit more YAFIYGI.

> My questions are: Am I missing the boat? Would Federation be much more
> simple to setup? Would Federation even work in this scenario?

Really it's up to you. Where exchange federation would win in this 
scenario is if you want to ensure that only messages which are actually 
needed at site B (because there's an appropriately bound queue) get sent 
there - federation is aware of which bindings exist, shovel isn't.

> In addition: I would like to configure this whole thing via Puppet. I
> know how to do it in the rabbitmq config for shovel but wouldn't this
> require a restart when configuration changes are made?

Yes.

> Also, would the
> federation configuration methods via the API lend itself to more simple
> Puppetization through simple API calls for Federation setup?

Quite possibly.

The next release of RabbitMQ (3.3.0) will give you the option of 
configuring the shovel in a similar way to federation, via mgmt/ctl 
calls with changes applied immediately (see 
http://next.rabbitmq.com/shovel-dynamic.html).

I don't know if that makes your choice harder ;-)

Cheers, Simon



More information about the rabbitmq-discuss mailing list