advanced
RabbitMQ queues
Конфигурируйте queues для durability, exclusivity, TTL, max length, quorum needs и consumer ownership вместо blind defaults.
Очереди буферизуют сообщения, пока их не обработают consumer. Durable-очереди переживают перезапуск брокера вместе с persistent-сообщениями. Exclusive привязаны к одному соединению; auto-delete исчезают без использования. TTL истекает сообщения или записи; max-length отбрасывает или отправляет в dead-letter при переполнении.
Quorum-очереди заменяют классические mirrored на репликацию через Raft и более сильную защиту данных. Lazy-очереди раньше сбрасывают сообщения на диск при больших backlog. Consumer priority и single-active-consumer меняют справедливость распределения под нагрузкой.
На интервью: объясните разницу durability и persistence, когда нужны quorum-очереди и как TTL с max-length защищают брокер от бесконечного роста.
Типовые ошибки: durable-очередь с transient-сообщениями; отсутствие max-length при высоком ingress; exclusive-очереди у горизонтально масштабируемых worker; игнорирование dead-letter при истечении сообщений.
Компромисс — гибкость против сложности: знайте, когда достаточно более простого пути.
Чеклист:
- Согласуйте durability и persistence.
- Настройте TTL и max-length для защиты от всплесков.
- Выберите quorum или classic с учётом failover.
- Зафиксируйте, кто объявляет очередь и управляет её жизненным циклом.