[rabbitmq-discuss] multicast without cycles?

Michael Klishin mklishin at gopivotal.com
Tue Jun 17 01:54:32 BST 2014


On 17 June 2014 at 04:28:22, nick.stroh at icgsolutions.com (nick.stroh at icgsolutions.com) wrote:
> > Hello, I'm new to AMQP. What's the best way to implement a multicast 
> topology with the following characteristics:
> 
> - Each node can broadcast messages to each other node, but does 
> not receive its own messages.
> - Nodes can join or leave the topology dynamically

The simplest (and most efficient/scalable for the # of consumers) solution may be
to use a fanout exchange with every consumer having its own (server-named, exclusive)
queue it binds to the exchange. Clients then would add a header ("owner") to
every message and ignore deliveries from itself.

Newly joined clients then can simply declare an exclusive queue, bind it and consume.
Should a client fail, the queue will be deleted by RabbitMQ (because of the "exclusive"
attribute).

A downside to using server-generated exclusive queues: peers cannot route messages to each
other individually&

HTH.
-- 
MK 

Software Engineer, Pivotal/RabbitMQ


More information about the rabbitmq-discuss mailing list