I've setup a RabbitMQ cluster and I'm following the documentation on setting up mirrored queues (Highly Available Queues). It says:

Queues can be set to automatically synchronise by setting the ha-sync-mode policy key to automatic. ha-sync-mode can also be set to manual. If it is not set then manual is assumed.

Why is manual synchronization the default? What are some use cases for manual synchronization?

In the mean time, I've used:

rabbitmqctl set_policy ha-all ".*" '{"ha-mode":"all", "ha-sync-mode": "automatic"}'


Just read through the link provided, came across this clause, which may explain why 'manual' is the default, with important parts highlighted:

Explicit synchronisation can be triggered in two ways: manually or automatically. If a queue is set to automatically synchronise it will synchronise whenever a new slave joins - becoming unresponsive until it has done so.

So, automatic synchronise will make the queue unresponsive for a period of time, which may not be good depends on the use case of the queue. And, the automatic sync happens whenever there are new slave joins. If there is a large number of slave joining, then the queue will be unresponsive for quite a period of time, unless the queue is rather empty or the network is very fast.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.