我已经安装了一个RabbitMQ集群,我正在关于设置镜像队列( Highly Available Queues )的文档。 它说:
通过将ha-sync-mode策略密钥设置为自动,可以将队列设置为自动同步。 ha-sync-mode也可以设置为manual。 如果没有设置,则手动被假定。
为什么手动同步是默认的? 什么是手动同步的一些用例?
与此同时,我用了:
rabbitmqctl set_policy ha-all ".*" '{"ha-mode":"all", "ha-sync-mode": "automatic"}'
只要仔细阅读提供的链接,就会看到这个条款,这也许可以解释为什么'手动'是默认的,重要的部分被强调:
显式同步可以通过两种方式触发:手动或自动。 如果一个队列被设置为自动同步,则每当一个新的从站join时它就会同步 – 直到完成后才会响应 。
所以,自动同步会使队列在一段时间内不响应,这可能不是很好,这取决于队列的用例。 而且,只要有新的从站连接,就会发生自动同步。 如果有大量的从站join,那么队列在一段时间内将不响应,除非队列非常空或者networking非常快。