[rabbitmq-discuss] Seeking 'right way' to do IPC

Brian Jones bkjones at gmail.com
Mon Nov 1 20:17:17 GMT 2010


Hi all,

I'm setting up a rabbitmq server that will act as an IPC backchannel between
several nodes. Nodes can come and go, their number can vary, names aren't
consistent, etc. Ideally, the scenario I'd like to see work (sans any
assumed exchange types or binding semantics) is this:

1.  NodeA, NodeB, and NodeC connect. All of them will be both publishers and
consumers
2. Any node publishes a message
3. The other two nodes *each* receive the message
4. The publishing node *does not* receive the message.

In addition, I have another use case that seems... elusive:

1. NodeA, NodeB, and NodeC connect. All of them will be both publishers and
consumers
2. Any of the nodes publishes a message
3. Exactly one of the other nodes receives the message -- first one wins.
4. The publishing node *does not* receive the message.

The first scenario can be seen as a "node synchronization" problem: for
everything that happens on NodeB, a message must be sent to all other nodes
to bring them in sync.

The second scenario is more of a "Task delegation" problem: For everything
that happens on NodeC, a message is sent and the task is consumed/performed
by whichever node happens to receive it first.

Given that the numbers/names of the nodes aren't necessarily consistent
(nodes can be added/removed as scaling needs require), and I don't want the
publishing node to receive copies of messages they've published, what is a
reasonable way to go about addressing each of these scenarios using existing
AMQP capabilities in RabbitMQ (note I don't want to use exchange-to-exchange
bindings or other Rabbit-specific utilities)?

Thanks.
brian





-- 
Brian K. Jones
My Blog          http://www.protocolostomy.com
Follow me      http://twitter.com/bkjones
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20101101/f93e1f67/attachment.htm>


More information about the rabbitmq-discuss mailing list