Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
Clustering RabbitMQ is only half of what you need to make a resilient messaging infrastructure. The other half is up to your applications. Now you know how to write them to be resilient in the face of cluster node failure by reconnecting to new nodes and rebuilding the fabric your apps need to keep operating. Equally as important, you can now set up and use a load balancer to be the glue that determines which cluster nodes have failed and intelligently route your apps to new nodes when they reconnect. These techniques, when combined with a RabbitMQ cluster, give you a robust messaging infrastructure that can get hit with a failure without your applications missing a beat. But there are still a couple of unanswered questions about making Rabbit highly available. For example, how can you design a Rabbit infrastructure where the durable queues on that node aren’t unavailable to your apps when a node goes down? Also, what about designing a Rabbit architecture that can survive losing a whole data center and the clusters in it? For the answers to those questions, we need to break out our shovels and dive into a couple of warrens.