[rabbitmq-discuss] Cluster capability?

Paul Bell arachweb at gmail.com
Mon Nov 25 18:10:59 GMT 2013


Hi Simon,

Thanks for the reply.

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."

The page you referenced includes this remark:

"Virtual hosts, exchanges, users, and permissions are automatically
mirrored across all nodes in a cluster. Queues may be located on a single
node, or mirrored across multiple nodes <http://www.rabbitmq.com/ha.html>.
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."

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.

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:

1. Let's see, so, the several computers on which my (Java) RabbitMQ
component runs will be joined together in a cluster.
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...?
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?
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.

Can you address the concerns expressed in this stream of consciousness?

Thanks again, Simon.

Cordially,

-Paul


On Mon, Nov 25, 2013 at 12:34 PM, Simon MacMullen <simon at rabbitmq.com>wrote:

> On 23/11/2013 20:54, Paul wrote:
>
>> A use case here looks something like this:
>>
>> 1. Client on computer A publishes message X to local exchange on computer
>> A
>> 2. Client on computer B consumes message X from its local exchange on
>> computer B
>>
>> 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.
>>
>> How is this best done using RabbitMQ?
>>
>
> 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.
>
> Have you looked at http://www.rabbitmq.com/distributed.html ?
>
> Cheers, Simon
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20131125/31a949f5/attachment.htm>


More information about the rabbitmq-discuss mailing list