Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is it necessary to use three nodes to build RabbitMQ cluster?

Tags:

rabbitmq

I have to say the official website provides very little information to understand RabbitMQ clearly.

The official website suggests using three nodes to build a cluster. What is the reason for that? I suppose it's like ZooKeeper, which needs an odd number of nodes to do a quorum and elect the master.

Also, what is the advantage of using a non-HA cluster? Improve the performance or what? If the node which a queue resides is down, then the queue is not working. So for all situation, is it necessary to set the cluster to be mirror queue and auto-sync?

like image 598
Carl H Avatar asked Dec 25 '22 14:12

Carl H


1 Answers

Three nodes is the minimum to have a reasonable HA. Suppose you have a queue mirrored in two nodes, if one gets down, another one will be promoted as the new slave or master.

Please read here section Automatically handling partitions and the section More about pause-minority mode

is therefore not a good idea to enable pause-minority mode on a cluster of two nodes since in the event of any network partition or node failure, both nodes will pause

RabbitMQ can handle the cluster in different ways, depending on where you deploy it - LAN or WAN or unstable LAN etc. And you can also use federation, shovel

what is the advantage of using a non-HA cluster? Improve the performance or what?

I'd say yes, or simply you have an environment where you don't need to have HA queues since you can have only temporary queues.

is it necessary to set the cluster to be mirror queue and auto-sync?

You can also decide for manual-sync, since when you sync the queue is blocked, and if you have lots of messages to sync, it can be a problem. For example, you can decide to sync the queues when you don't have traffic.

Here (section Unsynchronised Slaves) it is explained clearly.

Your question is a bit general, and it depends on what are you looking for.

like image 84
Gabriele Santomaggio Avatar answered Mar 04 '23 03:03

Gabriele Santomaggio