Можно ли использовать RabbitMQ HA, используя несколько (2) кластеров RabbitMQ?
Вот мое требование:
У нас есть 2 кластера RabbitMQ (каждый по 4 узла). Все узлы в обоих кластерах будут использовать один и тот же файл cookie Erlang. Таким образом, хотя эти 2 кластера физически находятся в разных местах, но будут действовать как единый кластер с 8 узлами.
Мы планируем использовать HAProxy для балансировки нагрузки обоих кластеров (8 узлов). И издатель, и потребитель будут использовать этот прокси для подключения к брокеру.
Мы хотели бы использовать зеркальные очереди для HA с ha-mode: точно, ha-params: 4, ha-sync-mode: automatic вместе с автоматическим лечением для cluster_partition_handling.
Вопрос:
В случае HA, есть ли способ указать использовать 2 узла из первого кластера и 2 узла из второго кластера. Насколько я понимаю, это можно сделать с помощью политики ha-mode: nodes и использовать имена узлов, но при этом всегда будет использоваться один и тот же узел, может ли эта настройка быть динамической?
Поскольку оба кластера очень надежны, будет ли правильным подходом использовать автоматическое лечение для cluster_partition_handling (в случае разделения мозга)?
Согласно этому «По умолчанию очереди в кластере RabbitMQ расположены на одном узле (узле, на котором они были впервые объявлены). Это контрастирует с обменами и привязками, которые всегда можно рассматривать как присутствующие на всех узлах». . Означает ли это, что обмены по умолчанию зеркалируются? Итак, когда сообщение приходит на обмен и этот узел выходит из строя, будет ли сообщение доступно на другом обмене на другом узле?