<div dir="ltr">Hi,<br><br>After having read the AMQP standard and revisited the RabbitMQ slides
from the Erlang Exchange (<a href="http://www.lshift.net/blog/2008/07/01/slides-from-our-erlang-exchange-talk" target="_blank">http://www.lshift.net/blog/2008/07/01/slides-from-our-erlang-exchange-talk</a>) I still have a bit of understanding to get in
place, which I hope some of you can help me with.<br><br>Here is the basic problem I need to solve - see attached picture:<br>A, B and C are all members of the same group G and when they send
messages to each other in the group the group ID is used as the target address in
the message.<br><br>(In case the attached picture does not arrive: A is located at machine M1, B @ M2 and C @ M3.)<br><br>So when A sends Msg to the group G it has to be routed to B and C
where ever they may be. As you can see A sends Msg to M1 which notices
that it is targeted to the group G and M1 then finds out that there
are group members of G at the machines M2 and M3, hence it sends Msg
to M2 and M3. At the receiving machines - M2 and M3 - the message is
then delivered to the members of the group attached to the machine.<br><br>The naïve approach would be to create a queue for the group G and have
all group members subscribe to that queue.
<br>Questions:
<br>
<br> 1. Does the sender receives its own message though the queue?
<br> 2. Is there a way to notify clients like B and C that there is a message for them in one of their queues? Or do you have to poll the queue to find out if there is something for you? (Basically this is a question of using a interrupt like thing vs polling.)
<br>
<br>Now for the deployment: I cannot use a single AMQP server to handle
all of this since the load would be too high to meet the strict
performance requirements in place so some sort of distribution of the
work must be done.<br><br>My initial understanding leads me to say that for the attached problem
I should create a cluster consisting of M1, M2 and M3 and then just
let RabbitMQ deal with all the nitty gritty details.
<br>Is that a correct understanding of how to use RabbitMQ to address the
basic problem?
<br><br>Cheers,<br>Torben<br></div>