[rabbitmq-discuss] High Scalability and High Availability...How to?!!

Michael Klishin mklishin at gopivotal.com
Thu Jun 12 19:21:57 BST 2014


 On 12 June 2014 at 22:18:27, Shadi Mari (shadimari at gmail.com) wrote:
> > Does that mean that if i have two publishers declare the same  
> queue on different nodes of the cluster, i will end up having two  
> master queues and two slaves?

queue.declare is idempotent. If you declare a queue that already exists
with the same attributes, nothing happens. If the attributes differ, you get
an error.

> What is the right way and best practice to mix load balancing with  
> HA on RabbitMQ?

"the right way" depends on what you do. Having a load balancer in front of
a cluster to distribute queue masters is one technique. Not mirroring to all
nodes in the cluster is another (2-3 nodes is often sufficient). Having
your consumers connect to queue masters to avoid intra-cluster traffic
(you can infer queue masters from queue info over HTTP API) will 
increase throughput.

The goal is to spread queue masters between nodes and improve data locality.
--  
MK  

Software Engineer, Pivotal/RabbitMQ


More information about the rabbitmq-discuss mailing list