Module cmp_message_router

Source
Expand description

TODO - крейт message-router - для маршрутизации сообщений:

  • рассылка сообщений только нужным сервисам
  • хранит кеш, чтобы предотватить зацикливание рассылки сообщений

Все сервисы обмениваются данными на основе модели Публикации/Подписки (Pub/Sub). Стандартный способ через Redis (можно ли через MQTT)?

TODO Видимо, не получится выделить в отдельный компонент. Необходимо добавить в конфигурацию cmp_redis_publisher функцию, которая будет принимать сообщение, и выдавать вектор каналов. Тогда message_router можно реализовывать как отдельный сервис на основе стандартных компонентов.

§Диаграмма

<sodipodi:namedview id=“namedview1” pagecolor=“#ffffff” bordercolor=“#000000” borderopacity=“0.25” inkscape:showpageshadow=“2” inkscape:pageopacity=“0.0” inkscape:pagecheckerboard=“0” inkscape:deskcolor=“#d1d1d1” inkscape:document-units=“mm” showgrid=“true” inkscape:zoom=“1.0355127” inkscape:cx=“183.96684” inkscape:cy=“265.56893” inkscape:window-width=“1920” inkscape:window-height=“1052” inkscape:window-x=“0” inkscape:window-y=“0” inkscape:window-maximized=“1” inkscape:current-layer=“layer1”> <inkscape:grid id=“grid1” units=“mm” originx=“0” originy=“0” spacingx=“0.99999998” spacingy=“1” empcolor=“#0099e5” empopacity=“0.30196078” color=“#0099e5” opacity=“0.14901961” empspacing=“5” dotted=“false” gridanglex=“30” gridanglez=“30” visible=“true” /> </sodipodi:namedview> output in_service1 in_service2 message_router service1 service2 Брокер сообщений(напр Redis)

§Пример