[rabbitmq-discuss] Mechanism to Add Nodes to the Mirror Queue actively

Simon MacMullen simon at rabbitmq.com
Tue Apr 9 11:48:28 BST 2013

On 09/04/13 01:50, Lujin wrote:
> Hello RabbitMQ Devs,
> In recent days, I've been experimenting with RabbitMQ's HA mechanism to
> get messages mirrored to different nodes. I am concerned mainly with
> fail over scenarios where the message would be lost if all the nodes for
> Queue X goes down.
> What I have observed is that as it is right now (3.0.0), the broker
> doesn't actively find a node in the cluster to mirror the queue whenever
> a node fails over.*

Yeah. The reason for this is to avoid repeatedly migrating queues to new 
nodes when shutting down a cluster.

Otherwise imagine you have a cluster ABCD. The queue is on AB. You shut 
down A; it starts up on C. You shut down B, it starts up on D - and 
you've lost data if the queue didn't get time to synchronise.

> So what I do is, whenever a node fails over, I immediately delete the
> HA-2 policy and then immediately add the same HA-2 policy right back.
> This is the only way that I know of that allows the queue to pick up a
> node from my cluster for mirroring. (Without bringing the node back up)
> Yes, the new node will be unsynchronized but with active
> synchronization, this is not a big problem.


> *So my question is: Are there other ways for a mirrored queue to
> actively find node(s) in the cluster to mirror to without some intricate
> steps like the ones above? Perhaps there's a plugin in the works or some
> new feature in a upcoming version relaese?

I'm afraid not yet.

Cheers, Simon

Simon MacMullen
RabbitMQ, VMware

More information about the rabbitmq-discuss mailing list