RabbitMQ provides, among the various features, clustering capabilities.
Using clustering, a group of properly configured hosts will behave the same as a single broker instance with the following purposes:
High availability: If one node is shut down, the distributed broker still accepts and serves messages. These aspects will be treated in depth in Chapter 7, Developing High-availability Applications.
Scalability of the load of messages: Message routing is distributed among all the nodes of the cluster.
Scalability of the connected clients: Each node serves a subset of all the available clients.
Tip
Clustered RabbitMQ nodes should be in LAN. RabbitMQ clusters do not tolerate network partitions well because during a network partition each node works independently. There is no mechanism to prevent the so-called "split-brain syndrome" (find some good references to this problem at http://en.wikipedia.org/wiki/Consensus_(computer_science). RabbitMQ uses short timeouts, typical of local...