<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&#39;t need the WAN-friendly capabilities of a federation, i.e., &quot;machines in a single location.&quot;</div>
<div><br></div><div>The page you referenced includes this remark:</div><div><br></div><div>&quot;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.&quot; </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., &quot;..even if they are not located on that node&quot; suggests that whether or not the queues are mirrored shouldn&#39;t matter, i.e., client will see the queues regardless of the cluster it connects to.</div>
<div><br></div><div>The cluster approach &quot;feels&quot; 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&#39;s some thinking out loud with attendant questions:</div>
<div><br></div><div>1. Let&#39;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&#39;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">&lt;<a href="mailto:simon@rabbitmq.com" target="_blank">simon@rabbitmq.com</a>&gt;</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&#39;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>