Що встановлено на вашому сервері 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 ГіБ RAM і 4 ядра на вузол та зазначає, що RabbitMQ не розроблявся для одноядерних середовищ. Найменший розмір, 2 ГБ, вважайте розміром для розробки й тестів, а для продакшену обирайте 4 ГБ і додавайте CPU. Видавців стримують, коли використання пам’яті перевищує 60 відсотків RAM, а персистентні повідомлення заповнюють і диск. RAM, CPU і диск можна збільшувати окремо з панелі, а дані та IP-адреса лишаються тими самими.
| Використання | Розмір | Ціна | Обрати |
|---|---|---|---|
| Стартовий | 4 GB RAM · 2 vCore · 60 GB NVMe | $6.91/міс. | |
| Середній | 8 GB RAM · 4 vCore · 120 GB NVMe | $13.63/міс. | |
| Потужний | 16 GB RAM · 8 vCore · 200 GB NVMe | $25.18/міс. |
Кому підійде?
- Команди, що виводять фонові завдання зі свого вебзастосунку
- Розробники, які налаштовують обмін повідомленнями між службами
- Проєкти на 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 і пароль є у вашій панелі, а цей рядок ви передаєте клієнтській бібліотеці.
Скільки RAM потрібно RabbitMQ?
Офіційний контрольний список RabbitMQ для продакшену вимагає щонайменше 4 ГіБ RAM і 4 ядра на вузол. Для розробки й тестування можна почати з 2 ГБ.
Як відкрити інтерфейс керування RabbitMQ?
Його відкриває через HTTPS посилання «Адреса панелі» у вашій панелі. Логін — yonetici, а пароль є у вашій панелі. В інтерфейсі можна створювати черги, обміни, користувачів і віртуальні хости, а також надсилати й отримувати тестові повідомлення. Порт 15672 назовні не відкритий.
Чи зашифроване з’єднання AMQP у RabbitMQ?
У цьому встановленні порт 5672 RabbitMQ без TLS, тож пароль і повідомлення йдуть незашифрованими. Для чутливих даних через інтернет скористайтеся SSH-тунелем або налаштуйте слухач TLS на порту 5671 зі своїм сертифікатом і опублікуйте цей порт.
Чому мої видавці в RabbitMQ заблоковані?
RabbitMQ блокує підключення, що публікують повідомлення, коли використання пам’яті перевищує 60 відсотків RAM або вільне місце на диску падає нижче ліміту. Сигнал тривоги знімається, коли споживачі забирають повідомлення. Стан видно на сторінці Overview в інтерфейсі керування, а якщо це повторюється, збільште розмір сервера.
Чи можна створити для застосунку окремого користувача RabbitMQ?
Так. На вкладці Admin в інтерфейсі додайте віртуальний хост і користувача та надайте дозволи. З командного рядка в /opt/seturack/rabbitmq виконайте docker compose exec rabbitmq rabbitmqctl add_user NAME PASSWORD. Новий користувач не зможе підключитися, доки не отримає дозволи.