RabbitMQ:为什么默认的ha-sync-mode是手动的?

RabbitMQ:为什么默认的ha-sync-mode是手动的?

我已经设置了一个 RabbitMQ 集群,并且正在按照文档设置镜像队列(高可用性队列)。 它说:

通过将 ha-sync-mode 策略键设置为 automatic,可以将队列设置为自动同步。ha-sync-mode 也可以设置为 manual。如果未设置,则假定为 manual。

为什么默认设置是手动同步?手动同步有哪些用例?

同时,我使用了:

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

答案1

刚刚阅读了提供的链接,看到了这个条款,它可能解释了为什么“手动”是默认的,并突出显示了重要部分:

显式同步可以通过两种方式触发:手动或自动。如果将队列设置为自动同步,则每当有新的从属设备加入时,它都会进行同步 -变得反应迟钝直到它这样做为止。

因此,自动同步将使队列在一段时间内无响应,这可能不是好事,具体取决于队列的使用情况。而且,只要有新的从属加入,就会发生自动同步。如果有大量从属加入,则队列将在相当长的一段时间内无响应,除非队列相当空或网络非常快。

相关内容