<div dir="ltr"><div>Hi Simon,</div><div><br></div><div>Thanks for the reply.</div><div><br></div><div>Yup, I sure did look at the distributed.html page you reference. In fact, it was that page that pushed me in the direction of a cluster rather than federation or Shovel. I reasoned that my use case has reliable networking and didn't need the WAN-friendly capabilities of a federation, i.e., "machines in a single location."</div>
<div><br></div><div>The page you referenced includes this remark:</div><div><br></div><div>"Virtual hosts, exchanges, users, and permissions are automatically mirrored across all nodes in a cluster. Queues may be located on a single node, or <a href="http://www.rabbitmq.com/ha.html"><font color="#000080">mirrored across multiple nodes</font></a>. A client connecting to any node in a cluster can see all queues in the cluster, even if they are not located on that node." </div>
<div><br></div><div>Question: does the last sentence apply to both queues located on a single node and to mirrored (HA) queues? The last clause of that sentence, e.g., "..even if they are not located on that node" suggests that whether or not the queues are mirrored shouldn't matter, i.e., client will see the queues regardless of the cluster it connects to.</div>
<div><br></div><div>The cluster approach "feels" complex to me but that is, at least in part, due to the fact that my once modest Rabbit skills have atrophied over the last couple of year. So, here's some thinking out loud with attendant questions:</div>
<div><br></div><div>1. Let's see, so, the several computers on which my (Java) RabbitMQ component runs will be joined together in a cluster.</div><div>2. What happens if Computer A creates some exchanges and then computer B, either before or after joining the cluster, creates the same exchanges? Maybe the usual Rabbit idempotency holds here; i.e., if exchange exists within the cluster, it's not going to be re-created...?</div>
<div>3. And if the component publishes to an exchange that message should (I think) be visible on the mirrored exchanges on all of the other nodes in the cluster, right? </div><div>4. And, moreover, once a consumer on any cluster node reads that message, no other consumer will be able to read it. I sure hope this is true.</div>
<div><br></div><div>Can you address the concerns expressed in this stream of consciousness? </div><div><br></div><div>Thanks again, Simon.</div><div><br></div><div>Cordially,</div><div><br></div><div>-Paul</div></div><div class="gmail_extra">
<br><br><div class="gmail_quote">On Mon, Nov 25, 2013 at 12:34 PM, Simon MacMullen <span dir="ltr"><<a href="mailto:simon@rabbitmq.com" target="_blank">simon@rabbitmq.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On 23/11/2013 20:54, Paul wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid">
A use case here looks something like this:<br>
<br>
1. Client on computer A publishes message X to local exchange on computer A<br>
2. Client on computer B consumes message X from its local exchange on computer B<br>
<br>
The intent here is that each client should need to know only its local broker. Clients should not need to know anything about another computer or broker.<br>
<br>
How is this best done using RabbitMQ?<br>
</blockquote>
<br></div>
Depends what exactly you're trying to do (of course). The use case you describe is quite broad, you could achieve that with clustering *or* federation *or* the shovel. Each have pros and cons.<br>
<br>
Have you looked at <a href="http://www.rabbitmq.com/distributed.html" target="_blank">http://www.rabbitmq.com/<u></u>distributed.html</a> ?<br>
<br>
Cheers, Simon<br>
</blockquote></div><br></div>