

Distributed Systems: Take Responsibility for Failover - ivolo
http://ivolo.me/distributed-systems-take-responsibility-for-failover/

======
rabbitmq
Nice post. One way to delegate the Java client redirect is to use Spring AMQP
for automatic connection failover. This has been available since 1.1.0 GA in
May 2012.

For other languages, and in general, we are looking into ways to make the
entire reconnect more transparent for cases both with and without
intermediaries. Solving this at the protocol level and in the general case is
non-trivial - you have to make some assumptions. Do please email the rabbitmq-
discuss list if you want to talk about any of this.

------
dunhamda
You can achieve seamless failover in RabbitMQ by running a clustered rabbitmq
node on each of your clients, and configure the client to connect to its local
rabbitmq. The cluster will take care of routing the messages to the active
mirrored queue. (Note that on the consumer side your code must still properly
handle consumer cancel notifications, but that's not too much to ask.)

This is architecturally similar to the mongodb/mongos solution described in
the article.

