[rabbitmq-discuss] Clustering and Scalability

Chris Nicel Chris.Nicel at 15below.com
Wed Apr 10 14:25:40 BST 2013

Hi Simon,

Thanks for coming back to me. Yes in all cases I was referring to "exactly" mode for the ha policy.

It seems we do have some options by programmatically adding ha policies and then removing them after the migration has occurred.

In terms of ideas for an automatic system of spreading load out across a cluster. You could monitor the size/speed of various queues and migrate them to even the load on any individual node. Similar to VMWare's vsphere DRS and storage DRS. Monitoring CPU and RAM usage (in the case of DRS) and storage IO to determine which hosts the vm's should be running on. This could allow you to add nodes and have the load balanced "automatically".

As with most software development you "could" do almost anything... I hope that my ideas are in some way helpful :o)



-----Original Message-----
From: Simon MacMullen [mailto:simon at rabbitmq.com]
Sent: 10 April 2013 12:40
To: Discussions about RabbitMQ
Cc: Chris Nicel
Subject: Re: [rabbitmq-discuss] Clustering and Scalability

Sorry about the previous response, hit "send" too early...

On 09/04/13 13:45, Chris Nicel wrote:
> Hi Guys,
> We are looking to use RabbitMQ as a messagebus in a scalable
> application. In order to achieve complete scalability it is important
> that we can ramp up our RabbitMQ cluster to have more nodes when a
> performance bottleneck is realised.
> I have reviewed the clustering guidelines and understand the queues do
> not migrate across a cluster when the nodes are being taken down.
> If a node fails/is taken down then queues for which it maintained will
> no longer be protected if an HA policy of exactly two nodes is used,
> until that node is restored that is.

Or until another node comes on line, or you change the policy.

> I believe these three questions will further my understanding:

I assume you are asking these questions in the context of "exactly" mode...

> Is there a way to re-nice the queues across the cluster to even out
> the load?

> Is there a way to migrate already existing queues to new nodes as
> slaves?

You could do both of these by setting a (queue-specific?) policy using "nodes" with a higher priority, waiting for the queues to migrate, and then deleting it again.

But it's becoming apparent that people seem to want something more automated that that. What exactly that would look like I'm less sure.

> If a queue loses a node and a new node is added to the cluster, will
> the new node join the ha policy for that particular queue?

Yes. (Again assuming "exactly" mode).

Cheers, Simon

Simon MacMullen
RabbitMQ, VMware

 15below Limited: Company registered in England and Wales No 3945289
Registered Office: Lyndean House, 43-46 Queens Road, Brighton BN1 3XB, United Kingdom

15below Australia Pty Limited: ABN 25 132 716 379
Level 50, 120 Collins Street, Melbourne, Victoria 3000, Australia

Please think about the environment before printing this email.

This email and any attachments may be confidential and/or legally privileged and are solely for the use of the intended recipient.  If you have received this email in error please contact the sender.  Any views or opinions expressed within this e-mail are solely those of the sender, and do not necessarily represent those of 15below unless otherwise specifically stated.  Although 15below has taken every reasonable precaution to ensure that any attachment to this e-mail has been checked for viruses, it is strongly recommended that you carry out your own virus check before opening any attachment, as we cannot accept liability for any damage sustained as a result of software virus infection.

More information about the rabbitmq-discuss mailing list