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 ответ
Просто прочитайте предоставленную ссылку, натолкнулся на этот пункт, который может объяснить, почему "руководство" является значением по умолчанию, с выделенными важными частями:
Явная синхронизация может быть запущена двумя способами: вручную или автоматически. Если очередь настроена на автоматическую синхронизацию, она будет синхронизироваться всякий раз, когда присоединяется новый подчиненный, и перестает отвечать до тех пор, пока это не будет сделано.
Таким образом, автоматическая синхронизация приведет к тому, что очередь не будет отвечать на запросы в течение определенного периода времени, что может быть не очень хорошим, в зависимости от варианта использования очереди. И автоматическая синхронизация происходит всякий раз, когда появляются новые подчиненные соединения. Если имеется большое количество подключений подчиненных, очередь не будет отвечать на запросы в течение довольно продолжительного времени, если очередь не достаточно пуста или сеть не очень быстрая.