Large Scale Configuration Rabbit
Contents
Large Scale Configuration of Rabbit
Introduction
The following information are mostly taken from a discussion we had on the mailing list. You can see this discussion here:
http://lists.openstack.org/pipermail/openstack-discuss/2020-August/thread.html#16362
Clustering or not clustering?
When deploying RabbitMQ, you have two possibility:
- Deploy rabbit in a cluster
- Deploy only one rabbit node
Deploying only one rabbit node can be seen as dangerous, mostly because if the node is down, your service is also down.
On the other hand, clustering rabbit has some downside that make it harder to configure / manage.
So, if your cluster is less reliable than a single node, the single node solution is better.
Moreover, as many OpenStack services are using RabbitMQ for internal communication (a.k.a. RPC), having a highly available rabbit solution is a must have.
One rabbit to rule them all?
You can also consider deploying rabbit in two ways:
- one rabbit (cluster or not) for each OpenStack services
- one big rabbit (cluster or not) for all OpenStack services
There is no recommendation on that part, except that if you split your rabbit in multiples services, you will, for sure, reduce the risk.
Which version of rabbit should I run?
You should always try to consider running the latest version of rabbit.
We also know that rabbit before 3.8 may have some issues on clustering side, so you might consider running at least rabbitmq 3.8.x.
See https://groups.google.com/forum/#!newtopic/rabbitmq-users/rabbitmq-users/zFhmpHF2aWk
Rabbit clustering configuration
Rabbit without clustering configuration
TODO