[rabbitmq-discuss] Moving a queue from one node to another

Ionel Gog ionel.gog at gmail.com
Mon Feb 27 19:25:41 GMT 2012


Is there any way I can move queues from one RabbitMQ node to another?

My usage scenario is moving a live RabbitMQ instance from one server to
another as transparently as possible. Something like:
- start another RabbitMQ instance on the target server
- cluster together the source and target RabbitMQ instances
- close all existing connections
- flip IPs (target's IP takes the source's IP)
- start moving all the queues from source to target. During this time
clients should be able to consume from the target queues.
- when the move process has finished, terminate the source RabbitMQ instance

Reading the documentation I see the following potential options - which
don't seem completely satisfactory:
- The shovel plugin. I would need to redeclare all queues on the target
RabbitMQ and then shovel messages over. The only problem that I see is that
it's not completely transparent to clients - a queue may appear empty or
may report less messages if not all messages have been shoveled over when a
client starts using it.
- Mirrored queues. But I don't think you can make a queue mirrored *after*
it has been created. Can you?
- Shared network disk. But this requires a broker restart - and thus
implies loosing all non-durable queues and non-persistent messages.

Is there any other way?

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20120227/89d7b28e/attachment.htm>

More information about the rabbitmq-discuss mailing list