In order to have a RabbitMQ cluster with many nodes, the clients must know all the IP addresses, and if the cluster configuration is dynamic, the clients should be notified of any change.
Furthermore, the clients should employ some methods to contact the clients that are less loaded.
The common solution is to put a load balancer in front of the cluster.
A load balancer can be either a hardware solution or a software package, installed and configured on general purpose servers.
Furthermore, there are many different load balancing techniques, the following being the most relevant:
TCP load balancers can behave as follows: