[rabbitmq-discuss] RabbitMQ and a two-site deployment connected via WAN.

Daniel Pittman daniel at rimspace.net
Tue May 4 11:29:59 BST 2010


I am looking at deploying RabbitMQ to provide messaging services inside, and
between, our two sites using both the AMQP and STOMP interfaces.

As far as I can tell we have two choices for deploying this:

1. Use an Erlang cluster over the WAN, as a single instance of RabbitMQ

2. Use the 'shovel' extension to push messages between two distinct RabbitMQ
   clusters, one at each site.

The only real discussion I can find about this is from 35 weeks ago, where the
comment was that using shovel might better handle a situation where the WAN
was down, but that it was not production ready.

My impression is that, generally speaking, we are likely to be best served by
using an Erlang cluster over the network: the WAN is fairly reliable, and will
soon have two redundant paths, further reducing the risk of a split cluster.

Am I correct in my understanding that using RabbitMQ in this way means:

Clients will connect to their local RabbitMQ node, and when they create a
queue it will exist only on that specific node.

Erlang will route messages to the correct node, either inside the site or over
the WAN as required.

Erlang and/or RabbitMQ will ensure that only one copy of a message traverses
the WAN, even if there are multiple recipients at the remote site.

Erlang and RabbitMQ will recover from a brief interruption of clustering, such
as a reboot of the server at one site, without manual intervention.

Further, is there anything useful that I can read about Erlang and RabbitMQ
WAN clustering?  My research, to date, has not given me much to learn from,
which makes me wonder what hidden complexity I might be risking...

✣ Daniel Pittman            ✉ daniel at rimspace.net            ☎ +61 401 155 707
               ♽ made with 100 percent post-consumer electrons

More information about the rabbitmq-discuss mailing list