Развертывание кластера RabbitMQ
Last updated
Was this helpful?
Last updated
Was this helpful?
Дополнительная информация по работе с кластерами (на английском языке): Clustering Guide и Queue Mirroring.
На каждом узле кластера развертываем RabbitMQ в соответствии со статьей Установка RabbitMQ под CentOS 8.
На каждом узле кластера открываем дополнительные порты, необходимые для работы кластера:
Каждый узел кластера должен иметь уникальное имя хоста. Имя хоста можно задать командой (требуется перезагрузка):
Например, для кластера из 2-х узлов с именами хостов node01 и node02 и IP 192.168.1.160 и 192.168.161:
По умолчанию RabbitMQ будет идентифицировать узел как rabbit@hostname.
На каждом узле одинаково настраиваем файл /etc/hosts:
Настраиваем идентификацию кластера: открываем файл /var/lib/rabbitmq/.erlang.cookie
на узле node01:
и копируем его содержимое в этот же файл на узле node02. Кластер будет образован узлом node01.
Останавливаем RabbitMQ на узле node02:
Включаем узел node02 в кластер, выполнив на нем команду:
Запускаем RabbitMQ на узле node02:
Проверяем состояние кластера на обоих узлах node01 и node02:
Создаем пользователя RabbitMQ для кластера, назначаем ему права. На узле node01 выполняем команды:
Создаем политику с именем ha-all для репликации типа «реплицируются все очереди на всех узлах». На узле node01 выполняем команду:
Настраиваем конфиг WebApi appsettings.ProdWin.json на работу с кластером – комментируем секцию Host (или устанавливаем значение null), добавляем IP узлов кластера (или доменные имена, если используются) в секцию Hosts (первым идет IP узла node01):
Типовые проблемы можно диагностировать, проверив статус кластера:
Решение проблемы «Network Partitions» (для rabbit@node02):