awesome-everything EN
↑ Обратно к восхождению

Очереди, потоки, события

RabbitMQ exchanges: тест с выбором ответа

Суть Тест с выбором на синтез по всему юниту — маршрутизация direct/fanout/topic/headers, binding key, smart-broker push, prefetch и сбои dead-letter.
Высота — путь к senior
НольJuniorMiddleSenior
Ты на senior-высоте — в орбите
◷ 12 min

Шесть вопросов поперёк всего юнита. Каждый отражает решение по топологии, которое ты принимаешь на реальном ревью дизайна — не определение для заучивания, а компромисс маршрутизации, который надо взвесить под production-нагрузкой.

Цель

Убедись, что связываешь тип exchange, binding key, smart-broker push-модель и production-сбои — тот синтез, к которому вёл урок.

Викторина

Надо доставлять события заказов трём сервисам сегодня, ожидаешь новых позже, и один сервис интересуют только EU-заказы. Какой тип exchange подходит и почему?

Викторина

Queue нового consumer'а ничего не получает — ни ошибок, ни исключений, а вызовы publish продюсера возвращают успех. Самая вероятная причина?

Викторина

Topic-binding использует ключ order.*.eu. Какой routing key совпадёт?

Викторина

Коллега говорит, что RabbitMQ и Kafka — взаимозаменяемые очереди, поэтому поздно подключившийся consumer может воспроизвести события за неделю из любой. Где ошибка?

Викторина

Один consumer держит огромный бэклог неподтверждённых сообщений, пока быстрые consumer'ы простаивают, а память брокера ползёт к high-watermark. Что неверно настроено и какой фикс?

Викторина

Consumer делает nack-with-requeue на некорректном payload, который никогда не сможет обработать, и один worker теперь застрял, бесконечно переполучая то же сообщение. Какой устойчивый фикс?

Итог

Сквозная линия — одно дерево решений маршрутизации: тип exchange это алгоритм (direct — точное совпадение, fanout — рассылка, topic — точечный паттерн с * и #, headers — матч атрибутов), binding плюс routing key решают, какие queue получат независимую копию, а smart-broker push-модель означает, что подтверждённое сообщение удаляется — никакого replay, в отличие от Kafka. Production-сбои на слой ниже: непривязанный exchange тихо отбрасывает без флага mandatory, слишком высокий prefetch голодает быстрых consumer’ов и растит неподтверждённую память, а poison message без dead-letter exchange зацикливается навсегда. Сначала верно выбери тип exchange и binding; всё ниже зависит от корректной маршрутизации.

Продолжить восхождение ↑RabbitMQ exchanges: тест на припоминание
хоткеи развернуть
поиск
K
пред. пьеса
k
след. пьеса
j
тиры
t
это меню
?
sources1
expand
  1. 01

Trademarks belong to their respective owners. Editorial reference only.