AMQP (Advanced Message Queuing Protocol)

AMQP (Advanced Message Queuing Protocol) -  это открытый стандартизированный протокол для асинхронного обмена сообщениями между системами, ориентированный на надежность, межплатформенную совместимость и гибкую маршрутизацию.

Ключевые характеристики AMQP

  • Надежная доставка – поддерживает подтверждения (acknowledgments), персистентные сообщения и транзакции.
  • Кросс-платформенность – работает на разных ОС и языках программирования (Python, Java, C#, Go и др.).
  • Гибкая маршрутизация – использует обменники (exchanges) и очереди (queues) с различными алгоритмами (direct, fanout, topic, headers).
  • Безопасность – поддерживает TLS/SSL и SASL-аутентификацию.
  • Работает поверх TCP – стандартный порт 5672 (или 5671 для TLS).

Основные компоненты AMQP

  • Producer (Издатель) – отправляет сообщения в exchange.
  • Exchange (Обменник) – получает сообщения и распределяет их в очереди по заданным правилам (bindings).
  • Queue (Очередь) – буфер сообщений, откуда их забирает потребитель.
  • Consumer (Потребитель) – получает и обрабатывает сообщения.

Примеры использования

  • Финансовые транзакции (банковские платежи, биржевые сделки).
  • Микросервисная архитектура (асинхронная связь между сервисами).
  • Фоновые задачи (обработка email, уведомлений, тяжелых вычислений).

Популярные реализации

  • RabbitMQ (наиболее распространенный брокер).
  • Apache Qpid.
  • Azure Service Bus (поддержка AMQP).

Стандартизация

  • Протокол разработан группой компаний (включая JPMorgan Chase, Red Hat) и стандартизирован как OASIS AMQP.
  • AMQP идеален для корпоративных систем, где важны надежность, масштабируемость и совместимость между разнородными компонентами.