AMQP

Раздел про AMQP и RabbitMQ: протокол (exchange/queue/binding/ack), эксплуатация (Quorum Queues, кластеризация, мониторинг), Spring AMQP, классические messaging-паттерны (work queue, pub/sub, RPC), сравнение с Kafka.

Зачем для UCP. RabbitMQ — стандартный брокер для work queue, RPC, broadcast-сообщений между UCP-сервисами. Без понимания AMQP-модели и Spring AMQP сервис теряет сообщения на первой нештатной ситуации. Соответствует фазе 8 программы.

Протокол AMQP и RabbitMQ — на уровне понимания протокола, операционной эксплуатации, фреймворкового кода и осознанного выбора между AMQP и Kafka.

Статьи серии

  1. Протокол AMQP: exchange, queue, binding, ack — модель AMQP 0.9.1, четыре типа exchange (direct/topic/fanout/headers), routing keys, ack/nack/reject, prefetch, publisher confirms, TTL. Без привязки к конкретному брокеру.
  2. RabbitMQ в production: Quorum Queues, кластеризация, мониторинг — кластеризация всё-узлы-знают-всё, Quorum Queues vs Streams vs Classic, отказ от classic mirroring в 4.0, federation/shovel, persistence, мониторинг через Prometheus.
  3. Spring AMQP: RabbitTemplate, @RabbitListener, retry, DLXRabbitTemplate, @RabbitListener + ConcurrentRabbitListenerContainerFactory, обработка ошибок, RetryTemplate, declarative DLX, publisher confirms в Spring.
  4. Messaging-паттерны через AMQP: work queue, pub/sub, RPC — пять классических паттернов (work queue, publish/subscribe, routing, topic, RPC) + idempotent consumer + Dead Letter pattern + Outbox через AMQP.
  5. AMQP vs Kafka: какой брокер брать — главное отличие моделей (queue vs log), push vs pull, ordering, throughput vs latency, scenarios где AMQP выигрывает, где Kafka, когда обе вместе.

Связанное