Что установлено на вашем сервере RabbitMQ?
- RabbitMQ 4 из сборки Alpine официального образа Docker с интерфейсом управления, последняя версия 4.x на момент установки
- Интерфейс управления по HTTPS через Caddy на адресе sslip.io, так что домен не обязателен
- Порт 5672 открыт для подключений AMQP
- Учётная запись администратора yonetici вместо guest со сгенерированным паролем
- Данные очередей хранятся в томе Docker rabbit_veri
- Файл Compose в /opt/seturack/rabbitmq/compose.yaml
- Брандмауэр, в котором открыты только порты 22, 80, 443 и 5672
Какой размер нужен для RabbitMQ?
В контрольном списке RabbitMQ для рабочей среды требуется не менее 4 ГиБ оперативной памяти и 4 ядра на узел, а также сказано, что RabbitMQ не рассчитан на одноядерные среды. Наименьший размер, 2 ГБ, считайте размером для разработки и тестов, а для рабочей среды выбирайте 4 ГБ и добавляйте CPU. Когда использование памяти превышает 60 процентов, издателей притормаживают, а постоянные сообщения заполняют ещё и диск. Оперативную память, CPU и диск можно увеличивать по отдельности в панели, а ваши данные и IP-адрес остаются прежними.
| Применение | Размер | Цена | Выбрать |
|---|---|---|---|
| Стартовый | 4 GB RAM · 2 vCore · 60 GB NVMe | $6.89/мес. | |
| Средний | 8 GB RAM · 4 vCore · 120 GB NVMe | $13.62/мес. | |
| Мощный | 16 GB RAM · 8 vCore · 200 GB NVMe | $25.15/мес. |
Кому подходит?
- Команды, которые выносят фоновые задачи из своего веб-приложения
- Разработчики, которые налаживают обмен сообщениями между сервисами
- Проекты на Celery, Spring AMQP или amqplib
- Те, кому нужна настоящая очередь для разработки и тестирования
Что будет после заказа?
- Задайте размер и оплатите заказ.
- Сервер запускается, и RabbitMQ устанавливается сам. В наших проверках на настоящих серверах это заняло около 8 минут.
- На вкладке «Обзор» ссылка в строке «Адрес панели» открывает интерфейс управления. Введите данные из строк «Логин» и «Пароль».
- Подключите своё приложение: amqp://yonetici:PASSWORD@IP:5672/%2f
- На вкладке Admin создайте для приложения отдельного пользователя и виртуальный хост (vhost).
С каждым сервером
- Ежедневные бэкапы входят в цену
- Безлимитный трафик
- Полный root-доступ
- Позже можно увеличить или уменьшить RAM и CPU, а диск увеличить
- Расположение: Istanbul · IST-1.
Полезно знать
- У порта 5672 нет TLS, он открыт в интернет, и ufw не может его закрыть, потому что его публикует Docker. Чтобы ограничить доступ, замените строку с портом в compose.yaml на 127.0.0.1:5672:5672, выполните docker compose up -d и подключайтесь через SSH-туннель.
- Лимит свободного места на диске по умолчанию — 50 МБ, и в официальной документации это считается подходящим только для разработки. Для рабочей среды увеличьте disk_free_limit.
- Когда достигнут лимит памяти или диска, подключения-издатели блокируются. По мере того как потребители забирают сообщения, тревога снимается и трафик снова идёт.
- Образ следует тегу 4-management-alpine, но сам не обновляется. Чтобы получить более новую версию 4.x, выполните в этой папке docker compose pull и docker compose up -d.
RabbitMQ: вопросы и ответы
Как подключиться к серверу RabbitMQ?
Ваша строка подключения — amqp://yonetici:PASSWORD@IP:5672/%2f. Конечное %2f обозначает виртуальный хост по умолчанию, /. В спецификации URI RabbitMQ сказано, что простой / в конце означает пустое имя. IP и пароль указаны в панели, а эту строку вы передаёте клиентской библиотеке.
Сколько оперативной памяти нужно RabbitMQ?
В официальном контрольном списке RabbitMQ для рабочей среды требуется не менее 4 ГиБ оперативной памяти и 4 ядра на узел. Для разработки и тестирования можно начать с 2 ГБ.
Как открыть интерфейс управления RabbitMQ?
Ссылка в строке «Адрес панели» в вашей панели открывает его по HTTPS. Логин — yonetici, а пароль указан в панели. В интерфейсе можно создавать очереди, обменники, пользователей и виртуальные хосты, а также отправлять и получать тестовые сообщения. Порт 15672 снаружи не открыт.
Зашифровано ли подключение AMQP к RabbitMQ?
В этой установке у порта 5672 нет TLS, поэтому пароль и сообщения идут без шифрования. Для важных данных через интернет используйте SSH-туннель или настройте слушатель TLS на порту 5671 со своим сертификатом и опубликуйте этот порт.
Почему блокируются издатели RabbitMQ?
RabbitMQ блокирует подключения-издатели, когда использование памяти превышает 60 процентов оперативной памяти или свободное место на диске падает ниже лимита. Тревога снимается по мере того, как потребители забирают сообщения. Состояние видно на странице Overview интерфейса управления, а если это повторяется, увеличьте сервер.
Можно ли создать для приложения отдельного пользователя RabbitMQ?
Да. На вкладке Admin интерфейса добавьте виртуальный хост и пользователя и выдайте права. В командной строке выполните в /opt/seturack/rabbitmq команду docker compose exec rabbitmq rabbitmqctl add_user NAME PASSWORD. Пока у нового пользователя нет прав, он не сможет подключиться.