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 идеален для корпоративных систем, где важны надежность, масштабируемость и совместимость между разнородными компонентами.