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

Как в RabbitMQ сообщение попадает от издателя в очередь?

JuniorRabbitMQ и SQSRabbitMQ
Ещё спрашивают так:
  • Как RabbitMQ доставляет сообщения?
Коротко

Издатель публикует в exchange, привязки (bindings) по routing key решают, в какие очереди попадут копии, потребители читают очереди и подтверждают.

  • Exchange не хранит сообщения
  • Типы: direct, topic, fanout, headers
  • Без подходящей привязки сообщение отбрасывается

А ещё Default exchange кладёт прямо в очередь с именем ключа

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

Подробно

Такая развязка позволяет менять маршрутизацию, не трогая издателя: достаточно изменить привязки. Тип обменника задаёт правило — direct сопоставляет ключ маршрутизации точно, topic допускает шаблоны, fanout рассылает во все привязанные очереди. Это принципиальное отличие от Kafka, где маршрутизации нет вовсе: потребитель сам выбирает топик и позицию чтения.

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

  • Путь сообщения: exchange → binding → queue.
  • Типы exchange.

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

  • Считать, что публикация идёт прямо в очередь.
  • Переносить модель Kafka на RabbitMQ и наоборот.

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

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

Показать варианты и ответ
  • ✓Издатель публикует в exchange, а тот по правилам привязки направляет сообщение в одну или несколько очередей
  • ✗Издатель пишет напрямую в очередь по её имени
  • ✗Очередь сама забирает сообщения у издателя по расписанию
  • ✗Сообщение попадает во все очереди брокера

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

  • Чем direct-обменник отличается от topic?
  • Что произойдёт с сообщением, если ни одна привязка не подошла?

Разбор темы

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

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

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

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

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