Запуск кількох інстансів 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. А потім третю, четверту, п’яту …
Отримані інстанси можна використовувати як окремі інсталяції або ж об’єднати в кластер.