RabbitMQ
RabbitMQ — это брокер сообщений. Он принимает сообщения от одних сервисов и передаёт другим. Звучит просто, но это решает фундаментальную проблему: сервисы перестают зависеть друг от друга и могут работать в своём темпе.
Пример: пользователь оформляет заказ. Без очередей API должен за один запрос: сохранить заказ в базу, отправить email, уведомить склад, списать баллы лояльности, отправить push. Если email-сервер тормозит — пользователь ждёт. С RabbitMQ: API сохраняет заказ, кидает сообщение в очередь и мгновенно отвечает пользователю. А email, push и всё остальное обрабатывается в фоне, каждый в своём темпе.
RabbitMQ поддерживает различные паттерны: простая очередь, pub/sub (одно сообщение — много подписчиков), маршрутизация по ключам, приоритеты, отложенные сообщения. Если обработчик упал — сообщение не пропадёт, а вернётся в очередь и будет обработано другим воркером.
RabbitMQ написан на Erlang — языке, который создавался для телекоммуникаций с требованием 99.999% uptime. Это делает RabbitMQ исключительно надёжным даже под высокой нагрузкой.
Ключевые преимущества
- Асинхронная обработка: пользователь не ждёт фоновых задач
- Надёжность: сообщения не теряются даже при сбоях
- Развязывание сервисов: каждый работает независимо
- Паттерны: очереди, pub/sub, маршрутизация, приоритеты
- Erlang-основа — 99.999% uptime
Примеры
Обработка заказов: API отвечает за 50 мс, а формирование накладной, отправка email и уведомление склада происходят через очереди. Импорт данных: 100 000 записей из CSV ставятся в очередь, 10 воркеров обрабатывают параллельно. Микросервисы: сервис оплаты публикует событие «оплата прошла», а сервисы доставки, лояльности и уведомлений подписаны на это событие.
Когда это нужно
RabbitMQ нужен, когда: есть тяжёлые фоновые задачи (отправка писем, генерация отчётов), микросервисы должны общаться между собой, нужна надёжная доставка сообщений, API должен отвечать быстро несмотря на сложную бизнес-логику, требуется обработка пиковых нагрузок без потери данных.
Связанные термины
Частые вопросы
RabbitMQ или Kafka — что выбрать?
RabbitMQ — классический брокер сообщений: отправил → обработал → удалил. Подходит для задач и команд между сервисами. Kafka — лог событий: данные хранятся и могут быть перечитаны. Подходит для аналитики, event sourcing, потоковой обработки. Для 90% бизнес-задач (очереди, уведомления, фоновая обработка) — RabbitMQ проще и достаточен.
Сложно ли внедрить RabbitMQ?
Развернуть RabbitMQ — 10 минут через Docker. Интеграция в код — 1-3 дня: подключить клиент (amqplib для Node.js, pika для Python), настроить очереди, написать обработчики. У RabbitMQ отличная админ-панель для мониторинга очередей. Главное — продумать, что делать с сообщениями при ошибках (dead letter queue).
Где это применяется
DevOps и облачная инфраструктура
Строим инфраструктуру, на которой продукт не падает: CI/CD и деплой в одну кнопку, мониторинг с алертами раньше клиента, Kubernetes только там, где он оправдан, миграция в облако без остановки прода. Базовый контур — от 200 000 ₽ за 2–3 недели, аудит инфраструктуры и демо-пайплайн бесплатно за 3–5 дней. В боевой контур не заходим до договора.
Как мы это делаемПродолжите изучение


