I have a question regarding how clustering helps to scale.
In a context where you mainly have clustered queues with sync policy, everything must hit the master first to get then propagated to the rest of the cluster.
One can then see the master as the bottleneck.
If I have a total of X connections, with a total of Y msg/s, am I really better of with let's say 5 nodes (so X/5 connections/node et Y/5 msg/s/node assuming we're in an ideal world....) compared to one node ?
I'm not talking about the resiliency side of things which is pretty obvious.
To sum up, can clustering be considered as more than adding resiliency and help to scale up, or is exchange federation a better option for this ?
On 22/04/2014 20:02, lepolac wrote:
> I'm not talking about the resiliency side of things which is pretty obvious.
> To sum up, can clustering be considered as more than adding resiliency and
> help to scale up, or is exchange federation a better option for this ?
Well, you don't need to have all queues mirrored on all nodes; if you
have unmirrored queues or those with ha-mode "nodes" or "exactly" then
you can get more queue-capacity across a cluster. Note also that
connection and channel processes will take some CPU; distributing that
around a cluster will also be beneficial.
But federation might be better for your case; the difference is more to
do with reliable vs unreliable networks than anything else. See
http://www.rabbitmq.com/distributed.html if you haven't already seen it.