Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Для унификации обмена сообщениями между кластерами системы CSS-17 применяется обмен через интеграционную шину, которую обеспечивает кластер Bus.Обмен сообщениями осуществляется по протоколу AMQP версии 0-10. Со спецификациями протокола AMQP версии 0-10 можно ознакомиться по ссылке: http://www.amqp.org/sites/amqp.org/files/amqp0-10.zip.

Далее будут рассмотрены механизмы, которые используются в CSS-17 при взаимодействии через Bus.

AMQP является протоколом, ориентированным на передачу сообщений через очередь с поддержкой механизмов транзакционности и гарантии доставки.Брокером AMQP называется сервер, который выполняет функции приема, маршрутизации, хранения сообщения в очереди и доставки сообщения получателю.В AMQP различают клиента отправителя (Publisher) и клиента получателя (Consumer) сообщения.Точка обмена (Exchange) выполняет функции маршрутизации сообщения при получении его брокером от отправителя. Целью "exchange" является определение того, в какую очередь должно быть доставлено каждое сообщение на основании транспортных параметров сообщения.

Свойство транзакционности и гарантии доставки, поддерживаемое протоколом AMQP, позволяет гарантировать как доставку сообщения от отправителя до брокера с одной стороны, так и доставку от брокера до получателя с другой. При этом поддерживаются механизмы подтверждения доставки сообщения до всех нод кластера в случае схем с резервированием.

Типовой процесс доставки сообщения по протоколу AMQP можно отобразить следующим образом:


         (Publisher) (publish) (Exchange) (route) (Queue)
  
(consumes) (Consumer)


Отправитель==отправка==>Точка обмена==маршрутизация==>Очередь==

...

доставка==>Получатель

...















В процессе отправки сообщения отправитель устанавливает для сообщения различные параметры, которые влияют на процесс обработки и доставки сообщения.Ключевыми параметрами, которые используются в CSS-17, являются:
exchange - точка обмена, которая должна использоваться для маршрутизации сообщения на брокере;
routing.key - метка маршрутизации, которая используется при маршрутизации;
reply_to.exchange - точка обмена, которая должна использоваться при отправке ответного сообщения;
reply_to.routing_key - метка маршрутизации, которая должна использоваться при отправке ответного сообщения;
time_to_live - время жизни сообщения.
Точка обмена (Exchange).
Протокол AMQP регламентирует несколько типов точек обмена, которые отличаются принципами маршрутизации поступающих в них сообщений.Поддерживаются следующие типа точек обмена:
Direct exchange
Fanout exchange
Topic exchange
Headers exchange
В системе CSS-17 используется Direct Exchange.
В Direct Exchange маршрутизация входящих сообщений осуществляется в очереди на основании значения параметра "routing key" сообщения. Этот тип точки обмена идеален для организации unicast-потоков обмена сообщениями (можно организовать и multicast обмен).Direct Exchange работает следующим образом:
очередь Q связывается с точкой обмена с меткой маршрутизации routing.key=K;
когда новое сообщение поступает с меткой маршрутизации routing.key=R, то точка обмена маршрутизирует это сообщение в очередь Q, если R=K.
Direct exhange часто используется в ситуациях, когда нужно распределять задачи между несколькими однотипными обработчиками в режиме распределения нагрузки (round robin).
Схематически работа Direct exhcnage:

...