|
|
31 мая 2011
AMQP - открытый протокол для передачи сообщений между компонентами системы. Основная идея состоит в том, что отдельные подсистемы могут обмениваться произвольным образом сообщениями через AMQP-брокер, который осуществляет маршрутизацию, возможно гарантирует доставку, распределение потоков данных, подписку на нужные типы сообщений.
Архитектуру протокола разработал John O'Hara из банка JP Morgan Chase & Co.
Протокол
AMQP основан на трёх понятиях:
- Сообщение — единица передаваемых данных, основная его часть никак не интерпретируется сервером, к сообщению могут быть прицеплены структурированные заголовки.
- Точка обмена — в неё отправляются сообщения. Точка обмена распределяет сообщения в одну или несколько очередей. При этом в точке обмена сообщения не хранятся. Точки обмена бывают трёх типов: fanout — сообщение передаётся во все прицепленные к ней очереди; direct — сообщение передаётся в очередь с именем, совпадающим с ключом маршрутизации; topic — нечто среднее между fanout и direct, сообщение передаётся в очереди, для которых совпадает маска на ключ маршрутизации, например, app.notification.sms.* — в очередь будут доставлены все сообщения, отправленные с ключами, начинающимися на app.notification.sms.
- Очередь — здесь хранятся сообщения до тех пор, пока не будет забраны клиентом. Клиент всегда забирает сообщения из одной или нескольких очередей.
Просмотров: 1032
|