[rabbitmq-discuss] Cluster capability?

Paul Bell arachweb at gmail.com
Sun Dec 22 17:35:16 GMT 2013


Simon, Alvaro, and Darren,

Thank you for your helpful replies. I apologize for dropping the ball on
this thread. I remain acutely interested in this topic, just been busy...

So let me add an element to the HA cluster environment: suppose I have two
HA clusters, perhaps geographically separated. The two clusters are
connected via the Shovel plugin. Some questions:

a. First, do I rightly assume that it's possible to connect HA clusters via
Shovel?

b. If my component on cluster A publishes a message to its local broker,
will that message get sent via Shovel to the remote cluster? I think what
I'm asking here concerns whether or not *my* component must publish to the
Shovel itself, or does the cluster "know" to propagate the message via
Shovel? I ask this because I'm wondering how far I can push the mirroring
capabilities of the logical broker. I seem to recall that the local end of
a Shovel would appear to local components as a regular exchange.

c. Finally, does Shovel permit more than two peer clusters or, if I had 3
clusters, would I need 3 Shovels interconnecting them?

Thanks again.

-Paul



On Thu, Nov 28, 2013 at 10:45 AM, Darren Govoni <darren at ontrenet.com> wrote:

> It should also be noted that if the "master" node for an HA queue becomes
> inactive a new one is elected.
>
>
> On 11/28/2013 10:12 AM, Alvaro Videla wrote:
>
>> Hi,
>>
>> On Thu, Nov 28, 2013 at 2:36 PM, Paul <arachweb at gmail.com> wrote:
>>
>>  My concern is that in an HA Queue implementation, a given message could
>>> be consumed more than once, i.e., once on computer A and once on B.
>>> Consequently, the same unit of work will be executed twice, and that's no
>>> good.
>>>
>> No. RabbitMQ will ensure that a message will be seen by just one
>> consumer. If a message arrived to queue Q, which is mirrored on node A
>> and node B, the message will be replicated across those nodes, but
>> still RabbitMQ will send the message to just one consumer. HA queues
>> have a master node and it will synchronise work with the slave queues.
>>
>> Of course what Simon says above also applies. If a message got routed
>> to more than one queue, then that particular message could be seen by
>> more than one consumer, but that doesn't seem to be what you are
>> asking here.
>>
>> For a particular queue (whether HA or not) messages are delivered just
>> once. If the consumer is in ack mode and it crashes before acking,
>> then yes, that message will be requeued and delivered again.
>>
>> Also one recommendation, although not easy to achieve, is to have
>> idempotent consumers.
>>
>> Regards,
>>
>> Alvaro
>> _______________________________________________
>> rabbitmq-discuss mailing list
>> rabbitmq-discuss at lists.rabbitmq.com
>> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
>>
>
> _______________________________________________
> rabbitmq-discuss mailing list
> rabbitmq-discuss at lists.rabbitmq.com
> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20131222/3488c21d/attachment.html>


More information about the rabbitmq-discuss mailing list