AMQP
AMQP (англ. Advanced Message Queuing Protocol) — відкритий стандарт протоколу прикладного рівня для проміжного програмного забезпечення, орієнтованого на обробку повідомлень. Семантика обміну повідомленнями налаштовується під потреби конкретного проекту. «Брокер повідомлень», який здійснює маршрутизацію, зазвичай гарантує доставку, розподіл потоків даних, підписку на потрібні типи повідомлень.
Архітектуру протоколу розробив John O'Hara з банку JP Morgan Chase & Co.
Точки обміну
«Повідомлення» (message) відправляються в «точку обміну». Точка обміну розподіляє повідомлення в одну або кілька «черг». При цьому в точці обміну повідомлення не зберігаються. Точки обміну бувають трьох типів:
- розгалуження (англ. fanout) — повідомлення передається в усі причеплені до неї черги ;
- прямі (direct) — повідомлення передається в чергу з ім'ям, що збігається з ключем маршрутизації (routing key), який вказується при відправці повідомлення ;
- теми (topic ) — щось середнє між розгалуженням і прямим типом, повідомлення передається в черзі, для якої збігається маска на ключ маршрутизації.
Повідомлення зберігаються в чергах доти, поки не буде забрано клієнтом. Клієнт завжди забирає повідомлення з однієї або декількох черг.