Выбор ответа Junior Очереди, логи и микросервисы спрашивают часто обновлено

Зачем нужна очередь сообщений

Вопрос

Сервис заказов после оплаты отправляет сообщение в брокер, а сервис писем и склад читают его сами. Что это даёт?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Сервисы развязаны: заказ не ждёт письма и склада, сообщения дождутся склада. Очередь делает взаимодействие асинхронным: отправитель не ждёт получателей и не знает про них, а сообщения ждут в брокере, пока потребитель не поднимется.

Варианты ответа

  1. Письма уходят мгновенно: брокер доставляет сообщение раньше, чем закончится транзакция
  2. Сервисы развязаны: заказ не ждёт письма и склада, сообщения дождутся складаправильный ответ
  3. Можно не хранить заказы в базе: брокер держит историю всех сообщений
  4. Брокер сам гарантирует, что каждое сообщение обработано ровно один раз

Разбор

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

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.