/ #rabbitmq #linux 

Запуск кількох інстансів RabbitMQ на одному сервері

Для запуску кількох інстансів RabbitMQ на різних портах достатньо відредагувати/створити systemd-юніт.

# /lib/systemd/system/rabbitmq-server.service
[Unit]
Description=RabbitMQ broker
After=network.target epmd@0.0.0.0.socket
Wants=network.target epmd@0.0.0.0.socket

[Service]
Type=notify
User=rabbitmq
Group=rabbitmq
UMask=0027
NotifyAccess=all
TimeoutStartSec=600

LimitNOFILE=32768

Restart=on-failure
RestartSec=10
WorkingDirectory=/var/lib/rabbitmq
Environment="RABBITMQ_NODE_PORT=5672"
Environment="RABBITMQ_NODENAME=rabbit1@localhost"
ExecStart=/usr/lib/rabbitmq/bin/rabbitmq-server
ExecStop=/usr/lib/rabbitmq/bin/rabbitmqctl -n rabbit1@localhost shutdown
SuccessExitStatus=69

[Install]
WantedBy=multi-user.target

Від юніту з коробки цей відрізняється рядками

Environment="RABBITMQ_NODE_PORT=5672"
Environment="RABBITMQ_NODENAME=rabbit1@localhost"
...
ExecStop=/usr/lib/rabbitmq/bin/rabbitmqctl -n rabbit1@localhost shutdown

Створивши юніт /lib/systemd/system/rabbitmq-server-5673.service з RABBITMQ_NODE_PORT=5673 та RABBITMQ_NODENAME=rabbit2@localhost, можна запустити другу копію RabbitMQ на порту 5673. А потім третю, четверту, п'яту …

Отримані інстанси можна використовувати як окремі інсталяції або ж об'єднати в кластер.

Посилання

Author

Олександр Бобилєв

Залишаю собі право використовувати ненормативну (але інформативну) лексику там, де звичайні слова втрачають сенс і не відображають всієї палітри почуттів, від споглядання навколишньої дійсності.