[rabbitmq-discuss] Active/active HA setup

jiri at krutil.com jiri at krutil.com
Thu Sep 2 16:09:20 BST 2010


Hello together

We are considering an active-active high availability broker setup and  
I wanted to check if there is someone here who could help with  
experience/advice.

We plan to run two RabbitMQ brokers with the same setup (same queues,  
exchanges, bindings), which are independent and not aware of each  
other. These would be behind a load balancer, so this should be  
transparent to client applications.

We use AMQP for two things:
- pub/sub broadcasts from back-end to clients (all clients bind to the  
same topic exchange)
- P2P request-response, where back-end responds to client requests  
(all clients send to the same request queue)

We have only one back-end server that serves the clients. Of course  
the back-end would have to publish broadcasts to and consume requests  
from both brokers.

When one broker dies, the clients will re-connect via load balancer to  
the other broker and continue. Of course any messages on the dead  
broker will be lost. We don't use persistent messages and can live  
with messages being lost.

So far I have only identified one problem - the order of message  
delivery across brokers. Since the design of our client-server  
interface relies on the guaranteed order of message delivery, we would  
probably have to force clients to put request sequence numbers to  
message headers, remember the last seen request number on the back-end  
for each client, and throw away any requests out of order.

Any ideas or hints will be much appreciated.

Cheers

Jiri
Deutsche Boerse Systems AG



More information about the rabbitmq-discuss mailing list