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.
  • Зафиксируйте, кто объявляет очередь и управляет её жизненным циклом.