Документация Accelera

Установка брокера RabbitMQ

Будет добавлена возможность применения Kafka вместо RabbitMQ в качестве внутренней очереди событий

Полезные ссылки

ТемаСсылки
УстановкаПолная информация о возможностях установки - <https://www.rabbitmq.com/download.html>Установка через Docker-образ - <https://registry.hub.docker.com/_/rabbitmq/>Вот пример установки на сервер (Debian/Ubuntu) - <https://www.rabbitmq.com/install-debian.html>
Конфигурирование<https://www.rabbitmq.com/configure.html>Разные вспомогательные CLI инструменты, некоторые доступны внутри контейнера.<https://www.rabbitmq.com/cli.html>
Настройка доступа<https://www.rabbitmq.com/access-control.html>
Мониторинг<https://www.rabbitmq.com/monitoring.html>
Troubleshooting<https://www.rabbitmq.com/troubleshooting.html>
Бэкапы и восстановление<https://www.rabbitmq.com/backup.html>

Установка

Брокер RabbitMQ поставляется вместе с системой в качестве контейнера. Данная установка не требуется, если у вас есть свой экземпляр RabbitMQ.

Если вы не используете предоставленный контейнер с брокером, то в вашем экземпляре необходимо активировать плагин hash exchange командой.

rabbitmq-plugins enable rabbitmq_consistent_hash_exchange

Данный плагин включен в стандартный пакет RabbitMQ, начиная с версии 3.7.8.

Конфигурация

Если вы используете предоставленный образ брокера, необходимо распаковать образ брокера flows_accelera_broker_{your_version}.tar.gz следующей командой:

docker load < flows_accelera_broker_{your_version}.tar.gz

ℹ️

В предоставляемом образе брокера уже активирован плагин hash exchange, дополнительных действий выполнять не нужно.

Создайте файл docker-compose.yaml со следующим содержимым:

version: '3'

services:
  accelera_broker:
    image: {image_name}:{image_version}
    container_name: accelera_broker
    network_mode: "host"
    restart: unless-stopped
    ports:
      - "5672:5672"
      - "15672:15672"

Описание параметров

imageИмя образа, который был распакован на предыдущем шаге, можно узнать командой docker images
container_nameИмя контейнера при запуске, рекомендуется оставить без изменения
restartПолитика рестарта процесса при остановке или ошибке, по умолчанию 'unless-stopped'
environmentBROKER_CONNECTION - адрес подключения к брокеру RabbitMQ.
portsНастройка портов, задается как "внешний_порт_для_сервера:порт_указанный_в_свойстве_PORT_"._Данное свойство задает проброс внешнего порта на внутренний порт контейнера.Порт 5672 необходим для непосредственного подключения приложений к брокеру.Порт 15672 - web-интерфейс брокера.Для переопределения конфигурации смонтируйте ваш файл конфига в контейнер при запуске по адресу /etc/rabbitmq/rabbitmq.conf.

Параметр ports настраиваются только при установки свойства network_mode = 'bridge'. Если в network_mode задан 'host', то параметр ports не требуются.

Пример файла:

rabbitmq.conf 35393

Запуск

Для запуска брокера используйте следующую команду:

docker-compose -f {путь к вашему docker-compose файлу} up -d

Получить доступ к логам и проверить работоспособность брокера можно командой:

docker logs -f accelera_broker

Остановка

Для остановки брокера используйте команду:

docker-compose -f {путь к вашему docker-compose файлу} down

Управление пользователями

По умолчанию RabbitMQ запускается с пользователем guest и паролем guest.

Рекомендуется переопределить эту конфигурацию при первом запуске в файле rabbitmq.conf в параметрах:

default_user = username
default_pass = password

При запуске системы войдите внутрь контейнера, в котором запущен RabbitMQ

docker exec -it broker /bin/bash

Добавьте нового пользователя командой

rabbitmqctl add_user 'accelera' 'strongpassword'

Выдайте новому пользователю права

rabbitmqctl set_permissions "accelera" ".*" ".*" ".*"

Добавьте пользователю тег management

rabbitmqctl set_user_tags "accelera" management

Далее удалите дефолтного пользователя, имя которого вы переопределили при первом запуске

rabbitmqctl delete_user 'username'

Покиньте командную оболочку контейнера.

Теперь в брокере доступен только пользователь, которого вы установили.


Ограничения конфигурации RabbitMQ

consumer_timeout - не должен быть меньше чем 25 минут

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