[rabbitmq-discuss] Cluster, shovel, how to accomplish this scenario?

Simone simone.busoli at gmail.com
Sun May 8 23:29:24 BST 2011


Hello, I managed to set up a shovel correctly. I have some doubts about the 
usage scenarios of this feature. Ideally I would like the shovel to be 
transparent to my application, but I realized that since you have to create 
a queue on one side and an exchange on the other side then these two make 
the applications built to use Rabbit somewhat aware of the shovel. 
With that I refer to the input queue of the shovel needding to be bound to 
an exchange, therefore the exchange has to exist and someone has to publish 
messages to it. The same holds true on the other side of the shovel, where 
clients need to bind to the shovel exchange.
All this makes sense and works great, but makes my application aware of the 
exchanges used by the shovel. 

Here's a scenario. My application has some publishers publishing to a topic 
exchange named X and some subscribers with their queues bound to that 
exchange. Setting up a shovel to have the same subscriber clients running on 
both sides of the shovel with no client code changes and no configuration 
changes except for the node url requires that the shovel needs to bind its 
input queue to exchange X and that an equal exchange X is created to the 
other end of the shovel so that clients on either side bind their queues 
their node's X exchange.

This makes the shovel mechanism somewhat aware of my application internals 
(the exchanges it uses) and requires that the same exchanges exist as soon 
as the nodes are started, thus moving (or worse, duplicating) their 
definition in the shovel configuration file. In addition it limits the 
flexibility as a new exchange creation which needs to be "mirrored" on the 
other node requires a change in the configuration of the shovel addin.

As said this works fine, but ideally I would like this mechanism to be 
transparent to the application. I read about the federation addin, which 
from a brief read seems to do exactly this. Any ideas or suggestions?

Thanks
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20110508/b7e8660f/attachment.htm>


More information about the rabbitmq-discuss mailing list