Получить доступ

Что такое message broker и зачем он нужен?

JuniorОчереди и гарантии доставки
Ещё спрашивают так:
  • Зачем нужна очередь сообщений?
  • Что даёт асинхронное взаимодействие сервисов?
Коротко

Брокер — посредник, который принимает сообщения от отправителей и доставляет получателям асинхронно: стороны не знают друг о друге и не обязаны работать одновременно.

  • Развязка: отправитель не ждёт и не падает, если получатель недоступен
  • Буфер: сглаживает пики — потребители разбирают в своём темпе
  • Масштабирование: несколько потребителей делят поток

А ещё Цена: итоговая согласованность, дубли при повторах, ещё одна система в эксплуатации

Так подсказку видит пользователь sotto на живом собеседовании — за пару секунд, пока вы думаете вслух.

Подробно

Что делает брокер: принимает сообщение от производителя, надёжно хранит его и выдаёт потребителю, отслеживая, что обработано. Примеры — RabbitMQ, Apache Kafka, Amazon SQS, NATS, ActiveMQ.

Зачем:

  • развязка во времени — отправитель публикует и продолжает работу; если получатель лежит, сообщения подождут;
  • развязка по знанию — издатель не знает, кто и сколько потребителей; новых можно добавить без изменения издателя;
  • буферизация — пиковую нагрузку брокер принимает, а потребители разбирают с постоянной скоростью;
  • масштабирование — несколько экземпляров потребителя делят работу;
  • надёжность — сообщение не теряется при падении потребителя, повторяется.

Типичные сценарии: фоновые задачи (письма, отчёты, обработка изображений), события между микросервисами («заказ оплачен»), потоки данных в аналитику, интеграции, журналы событий.

Цена: потребитель видит изменения с задержкой; доставка обычно «хотя бы один раз» — обработка должна быть идемпотентной; порядок гарантирован не всегда; сложнее отлаживать и трассировать; брокер — ещё одна система, которую нужно эксплуатировать.

Что хотят услышать

  • Определение и примеры брокеров.
  • Развязка, буферизация, масштабирование.
  • Сценарии применения.
  • Цена асинхронности.

Частые ошибки

  • Считать, что брокер гарантирует обработку ровно один раз.
  • Использовать брокер там, где нужен немедленный ответ.

Проверьте себя

Один верный вариант. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✓Промежуточный сервис, который развязывает producer и consumer по времени и скорости — буферизует, ретраит, изолирует сбои
  • ✗База данных для постоянного хранения бизнес-объектов
  • ✗Балансировщик HTTP-запросов между микросервисами
  • ✗Сервис, который заменяет REST-вызовы на gRPC

Что спросят дальше

  • Чем pub/sub отличается от point-to-point?
  • Какие гарантии доставки бывают?

Разбор темы

Связанные вопросы

Закрытая бета

Подсказки на собеседовании — в реальном времени

sotto слышит вопрос интервьюера и показывает короткий ответ и план, как в блоке «Коротко». Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем