In real-world applications, it is a common to manage a heavy load of connections over messaging servers. Installing the messaging server using the best hardware available alone will not suffice. There must be a more scalable approach to handling a linearly increasing number of connections.
The most appropriate solution is to have 'n' number of messaging servers communicate with each other, share the load between them and work in synchronization. A logical unit consisting of these 'n' servers (and some other software components) is called a cluster. A cluster also provides support for failover, which is not feasible with a single server.