Поиск по сайту:

Как настроить кластер RabbitMQ в CentOS 7


На этой странице

  1. Предпосылки
  2. Что будем делать?
  3. Шаг 1. Настройка файла Hosts
  4. Шаг 2. Установите сервер RabbitMQ.
  5. Шаг 3. Включите подключаемые модули управления RabbitMQ
  6. Шаг 4. Настройка CentOS Firewalld
  7. Шаг 5. Настройка кластера RabbitMQ
  8. Шаг 6. Создайте нового пользователя-администратора
  9. Шаг 7. Зеркалирование очереди установки RabbitMQ
  10. Шаг 8. Тестирование
  11. Справочник

RabbitMQ — это программное обеспечение брокера сообщений с открытым исходным кодом, которое изначально реализует протокол AMQP (Advanced Message Queuing Protocol), и хотя оно было разработано и расширено для поддержки других протоколов, таких как STOMP (протокол потокового обмена текстовыми сообщениями) и MQTT (Message Queuing Protocol). Очереди транспорта телеметрии).

RabbitMQ — это программное обеспечение для организации очереди сообщений, которое предлагает поддержку отправки и получения сообщений между распределенными системами, приложениями и службами. Он написан на языке программирования Erlang и поддерживает клиентские интерфейсы и библиотеки для всех основных языков программирования, включая Python, NodeJS, Java, PHP и т. д.

В этом руководстве я пошагово покажу вам, как настроить кластер RabbitMQ на сервере CentOS 7. Мы настроим кластер RabbitMQ с использованием трех серверов CentOS, включим управление RabbitMQ и настроим политику высокой доступности для всех узлов.

Предпосылки

  • 3 или более серверов CentOS 7
    • 10.0.15.21 узел01
    • 10.0.15.22 узел02
    • 10.0.15.23 узел03

    Что мы будем делать?

    1. Настройка файла hosts
    2. Установите сервер RabbitMQ
    3. Включить подключаемые модули управления RabbitMQ
    4. Настройка брандмауэра
    5. Настройка кластера RabbitMQ
    6. Настройка нового пользователя-администратора
    7. Настройка зеркалирования очереди RabbitMQ
    8. Тестирование

    Шаг 1 - Настройка файла hosts

    На этом этапе мы отредактируем файл /etc/hosts на всех серверах и сопоставим IP-адрес каждого сервера с именем хоста.

    Отредактируйте файл /etc/hosts с помощью редактора vim.

    sudo vim /etc/hosts

    Теперь вставьте туда следующую конфигурацию.

    10.0.15.21 node01
    10.0.15.22 node02
    10.0.15.23 node03

    Сохранить и выйти.

    Шаг 2 — Установите сервер RabbitMQ

    На этом этапе мы установим пакеты RabbitMQ Server из репозитория EPEL (дополнительные пакеты для Enterprise Linux).

    Добавьте репозиторий EPEL в систему CentOS 7.

    sudo yum -y install epel-release

    Теперь установите сервер RabbitMQ на все узлы node01, node02 и node03, используя приведенную ниже команду yum.

    sudo yum -y install rabbitmq-server

    И после завершения установки запустите службу RabbitMQ и включите ее запуск каждый раз при загрузке системы.

    sudo systemctl start rabbitmq-server
    sudo systemctl enable rabbitmq-server

    Сервер RabbitMQ был установлен на всех узлах кластера CentOS 7.

    Шаг 3. Включите подключаемые модули управления RabbitMQ.

    На этом этапе мы включим подключаемые модули управления RabbitMQ. Это интерфейс, который позволяет вам контролировать и обрабатывать сервер RabbitMQ из веб-браузера, работающего на TCP-порту по умолчанию 15672.

    Включите подключаемые модули управления RabbitMQ, выполнив приведенную ниже команду.

    sudo rabbitmq-plugins enable rabbitmq_management

    Убедитесь, что ошибки нет, затем перезапустите службу RabbitMQ.

    sudo systemctl restart rabbitmq-server

    И управление RabbitMQ было включено.

    Шаг 4 — Настройте CentOS Firewalld

    В этом руководстве мы включим службу брандмауэра CentOS, поэтому нам нужно открыть порт, который используется сервером RabbitMQ.

    Мы откроем порт, который использует сервер RabbitMQ 5672, порт для управления RabbitMQ 15672 и порты для кластера RabbitMQ 4369, 25672.

    Выполните следующие команды firewalld.

    sudo firewall-cmd --add-port=15672/tcp --permanent
    sudo firewall-cmd --add-port=5672/tcp --permanent
    sudo firewall-cmd --add-port={4369/tcp,25672/tcp} --permanent

    Теперь перезагрузите firewalld и проверьте все открытые порты в списке.

    sudo firewall-cmd --reload
    sudo firewall-cmd --list-all

    Настройка брандмауэра CentOS завершена, и все готово для настройки кластера RabbitMQ.

    Шаг 5 — Настройте кластер RabbitMQ

    Чтобы настроить кластер RabbitMQ, нам нужно убедиться, что файл .erlang.cookie одинаков на всех узлах. Мы скопируем файл .erlang.cookie в каталог /var/lib/rabbitmq с node01 на другие узлы node02 и node03.

    Скопируйте файл .erlang.cookie с помощью команд scp из каталога node01.

    scp /var/lib/rabbitmq/.erlang.cookie :/var/lib/rabbitmq/

    Убедитесь, что на обоих серверах нет ошибок.

    Далее нам нужно настроить узлы node02 и node03 для присоединения к кластеру node01.

    Запустите все приведенные ниже команды на серверах node02 и node03.

    Перезапустите службу RabbitMQ и остановите приложение.

    sudo systemctl restart rabbitmq-server
    sudo rabbitmqctl stop_app

    Теперь позвольте серверу RabbitMQ на обоих узлах присоединиться к кластеру на node01, затем запустите приложение.

    sudo rabbitmqctl join_cluster 
    sudo rabbitmqctl start_app

    После его завершения проверьте состояние кластера RabbitMQ.

    sudo rabbitmqctl cluster_status

    И вы получите результаты, как показано ниже.

    На узле 02.

    На узле 03.

    Был создан кластер RabbitMQ с узлами node01, node02 и node03 в качестве членов.

    Шаг 6. Создайте нового пользователя-администратора

    В этом руководстве мы создадим нового пользователя-администратора для нашего сервера RabbitMQ и удалим гостевого пользователя по умолчанию. Мы создадим нового пользователя из node01, и он будет автоматически реплицирован на все узлы в кластере.

    Добавьте нового пользователя с именем hakase и паролем [email .

    sudo rabbitmqctl add_user hakase 

    Настройте пользователя hakase в качестве администратора.

    sudo rabbitmqctl set_user_tags hakase administrator

    И предоставьте пользователю hakase разрешение на изменение, запись и чтение всех виртуальных хостов.

    sudo rabbitmqctl set_permissions -p / hakase ".*" ".*" ".*"

    Теперь удалите гостевого пользователя по умолчанию.

    sudo rabbitmqctl delete_user guest

    И проверьте всех доступных пользователей.

    sudo rabbitmqctl list_users

    И вы получите результат, как показано ниже.

    Создан новый пользователь RabbitMQ, а гостевой пользователь по умолчанию удален.

    Шаг 7 — Зеркальное отображение очереди установки RabbitMQ

    Эта настройка обязательна, нам нужно настроить кластер политик ha для зеркального отображения очереди и репликации на все узлы кластера. Если узел, на котором размещен мастер очереди, выйдет из строя, самое старое зеркало будет повышено до нового мастера, если оно синхронизировано, в зависимости от политик ha-mode и ha-params.

    Ниже приведены некоторые примеры политик ha RabbitMQ.

    Настройте политику ha с именем ha-all, при которой все очереди в кластере RabbitMQ будут зеркалироваться на все узлы в кластере.

    sudo rabbitmqctl set_policy ha-all ".*" '{"ha-mode":"all"}'

    Настройте политику с именем ha-two, в которой все имена очередей начинаются с двух. будет зеркалироваться на два узла в кластере.

    sudo rabbitmqctl set_policy ha-two "^two\." \
       '{"ha-mode":"exactly","ha-params":2,"ha-sync-mode":"automatic"}'

    Настройте политику ha с именем ha-nodes, в которой все имена очередей начинаются с узлов. будет зеркалироваться на два конкретных узла node02 и node03 в кластере.

    sudo rabbitmqctl set_policy ha-nodes "^nodes\." \
       '{"ha-mode":"nodes","ha-params":[""]}'

    Теперь проверьте все доступные политики, используя приведенную ниже команду.

    sudo rabbitmqctl list_policies;

    И если вы хотите удалить политику, используйте следующую команду.

    sudo rabbitmqctl clear_policy ha-two

    Шаг 8 — Тестирование

    Откройте веб-браузер и введите IP-адрес узла с портом 15672.

    http://10.0.15.21:15672/

    Введите имя пользователя hakase с паролем [email .

    И вы получите панель администратора RabbitMQ, как показано ниже.

    Все узлы кластера находятся в рабочем состоянии.

    Теперь щелкните меню вкладки «Администратор» и щелкните меню «Пользователи» сбоку.

    И вы получите пользователя hakase в списке.

    Теперь щелкните меню вкладки «Администратор» и выберите меню «Политики» сбоку.

    И вы получите все политики RabbitMQ, которые мы создали.

    Установка и настройка RabbitMQ Cluster на сервере CentOS 7 успешно завершена.

    Ссылка

    • https://www.rabbitmq.com/documentation.html