advanced
RabbitMQ для task queues и flexible routing
Выбирайте RabbitMQ, когда доминируют work queues, low-latency command delivery, acknowledgements, dead-lettering и rich broker routing.
Выбирайте RabbitMQ, когда важнее семантика work queue, гибкая маршрутизация, подтверждения на сообщение и низкая задержка команд, чем долгое хранение лога. Распределение задач, RPC request/reply, приоритетные очереди и сложная маршрутизация через exchanges соответствуют broker-centric модели RabbitMQ.
RabbitMQ силён в competing consumer, dead-letter, TTL-задержках и знакомых AMQP-паттернах. Слабее как неизменяемое хранилище событий — обработанные сообщения покидают очередь.
На интервью: обоснуйте RabbitMQ для пула worker fulfillment заказов, объясните плюсы exchange routing и когда мигрировали бы на Kafka.
Типовые ошибки: ожидание неограниченного replay из очередей; RabbitMQ без мониторинга memory и disk alarm; classic mirrored без плана миграции на quorum; использование для multi-TB аналитического ingestion.
Компромисс — гибкость против сложности: знайте, когда достаточно более простого пути.
Чеклист:
- Сопоставьте task queue и routing с моделью AMQP.
- Спланируйте ack, retry и DLX с первого дня.
- Мониторьте память брокера и глубину очередей.
- Задокументируйте жизненный цикл после consumption.