RabbitMQ: Почему по умолчанию используется режим ha-sync?

Я настроил кластер RabbitMQ и следую документации по настройке зеркальных очередей ( Highly Available Queues). Это говорит:

Очереди можно настроить на автоматическую синхронизацию, установив ключ политики режима ha-sync на автоматический. ha-sync-mode также можно установить на ручной. Если он не установлен, то предполагается ручное.

Почему ручная синхронизация по умолчанию? Какие варианты использования для ручной синхронизации?

В то же время я использовал:

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

1 ответ

Решение

Просто прочитайте предоставленную ссылку, натолкнулся на этот пункт, который может объяснить, почему "руководство" является значением по умолчанию, с выделенными важными частями:

Явная синхронизация может быть запущена двумя способами: вручную или автоматически. Если очередь настроена на автоматическую синхронизацию, она будет синхронизироваться всякий раз, когда присоединяется новый подчиненный, и перестает отвечать до тех пор, пока это не будет сделано.

Таким образом, автоматическая синхронизация приведет к тому, что очередь не будет отвечать на запросы в течение определенного периода времени, что может быть не очень хорошим, в зависимости от варианта использования очереди. И автоматическая синхронизация происходит всякий раз, когда появляются новые подчиненные соединения. Если имеется большое количество подключений подчиненных, очередь не будет отвечать на запросы в течение довольно продолжительного времени, если очередь не достаточно пуста или сеть не очень быстрая.

Другие вопросы по тегам