Как в RabbitMQ сообщение попадает от издателя в очередь?
- Как RabbitMQ доставляет сообщения?
Издатель публикует в exchange, привязки (bindings) по routing key решают, в какие очереди попадут копии, потребители читают очереди и подтверждают.
- Exchange не хранит сообщения
- Типы: direct, topic, fanout, headers
- Без подходящей привязки сообщение отбрасывается
А ещё Default exchange кладёт прямо в очередь с именем ключа
Подробно
Такая развязка позволяет менять маршрутизацию, не трогая издателя: достаточно изменить привязки. Тип обменника задаёт правило — direct сопоставляет ключ маршрутизации точно, topic допускает шаблоны, fanout рассылает во все привязанные очереди. Это принципиальное отличие от Kafka, где маршрутизации нет вовсе: потребитель сам выбирает топик и позицию чтения.
Что хотят услышать
- Путь сообщения: exchange → binding → queue.
- Типы exchange.
Частые ошибки
- Считать, что публикация идёт прямо в очередь.
- Переносить модель Kafka на RabbitMQ и наоборот.
Проверьте себя
Один верный вариант. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✗Издатель всегда пишет напрямую в очередь по её имени
- ✓Через exchange, который по привязкам выбирает очередь
- ✗Очередь сама забирает сообщения у издателя по расписанию
- ✗Сообщение сразу попадает во все очереди брокера
Что спросят дальше
- Чем direct-обменник отличается от topic?
- Что произойдёт с сообщением, если ни одна привязка не подошла?
Разбор темы
- RabbitMQ, SQS и классические очереди
Модель exchange/binding/queue, ack/nack и publisher confirms, prefetch, DLQ через DLX, отложенные сообщения, SQS Standard vs FIFO и visibility timeout.
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.