[rabbitmq-discuss] Basic High Availability questions

Jerry Kuch jerryk at vmware.com
Thu Mar 1 18:50:35 GMT 2012

Hi, Christopher:

Mirrored queues are actually a new active-active form of RabbitMQ HA,
disjoint from the classic active-passive using Pacemaker model in
versions prior to 2.6.0.

1) In mirrored queues there's no need for any Pacemaker.  You specify
that you want a queue mirrored, and replicas are made on the cluster
nodes you specify.  At any moment there's a designated master and
slaves, the management thereof all happening within the Rabbit cluster
without involvement of any external forces.

2) You can indeed continue connecting to any node in the cluster when
you consume from queues, mirrored or otherwise.  The only real case
where an application needs to know something about cluster topology
and where mirrored copies of queues live is when doing queue.declares.
The contents a consumer sees when consuming are those of the master.

3) You don't need to worry about floating IP trickery if you're using
the new mirrored queue HA/HA.  Operationally it's much less complex
than the old way.

Best regards,

----- Original Message -----
From: "Christopher King" <CKing at BroadViewNet.com>
To: rabbitmq-discuss at lists.rabbitmq.com
Sent: Thursday, March 1, 2012 10:10:00 AM
Subject: [rabbitmq-discuss] Basic High Availability questions


We are using RabbitMQ in a Pacemaker/corosync HA cluster. Our current implementation is very basic: Pacemaker manages the rabbitmq server as a resource, and we have a floating IPAddr2 resource that is grouped with it. The single floating IP address is a requirement of our system.

I’ve been reading the mirrored queue article, and have a few questions.

1) Are the master/slave broker nodes managed by Pacemaker (or some similar HA system) to bring the nodes into service and/or restart in the case of failure? Does the master/salve term refer to the broker nodes (i.e. A Pacemaker Stateful resource) or only the mirrored queues?

2) It appears that the consumer client can connect to any broker, and if it is consuming from a mirrored queue, it effectively is consuming from the master node. I.e., A client can have a connection open to any broker node in the rabbitmq cluster, but effectively is still consuming from the master node of a mirrored queue. Is that understanding correct?

3) Does the server have support for floating IP addresses in 2.7.1? (The 2.4.0 behaviour seems to be that the server will only bind to an IP address at startup. If the IP address becomes valid later, as in the floating IP case, the server can’t see it.)


Chris King

rabbitmq-discuss mailing list
rabbitmq-discuss at lists.rabbitmq.com

More information about the rabbitmq-discuss mailing list