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