Контролируйте очереди утешения с Grafana - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть пара микросервисов, которые обмениваются данными между ними, используя очереди Solace.Моя задача состоит в том, чтобы найти решение для проверки сообщений, которые поступают в эти две очереди и на основе или содержимого, чтобы поместить некоторые данные в InfluxDB, которые будут финансироваться, будет интерпретироваться Grafana.

Так что короткая история мне нужначтобы узнать, есть ли какое-либо техническое решение, чтобы получить копию каждого сообщения (перехватить сообщение), которое передается в очереди, фактически не потребляя его.

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

Я, что знать, если это технически возможно.

1 Ответ

0 голосов
/ 27 февраля 2019

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

Если компонент слушателя InfluxDB может работать параллельно с вашими микросервисами, то самый простой способсделать так, чтобы микросервис (ы) публикации публиковал по теме, подключил микросервис-потребитель к очереди, которая подписана на ту же тему, а компонент прослушивателя InfluxDB будет иметь свою собственную очередьподписан на одну и ту же тему (темы) ... что позволяет ему получать копию каждого сообщения, отправляемого микросервисом публикации (стандартный шаблон pub / sub).Это типичная лучшая практика для Solace - публиковать по темам, использовать из очередей и настраивать / контролировать отображение тем в очереди в инфраструктуре ... это позволяет вам изменять маршрутизацию сообщений между вашими приложениями (например, добавление нового слушателя), не затрагивая существующий код / ​​потоки.

Если вы не можете изменить код издателя для публикации в теме, вы все равно можете достичь той же функциональности, используя 2-ю очередь дляПотребитель InfluxDB и подписав его на «сетевую тему» ​​первой очереди, которая выглядит примерно так: #P2P/QUE/queue-name ... вы можете увидеть эту специальную тему в деталях очереди.

В качестве альтернативы, если вам нужно иметьКомпонент прослушивателя InfluxDB действует встроенно в ваши приложения микросервисов (вместо параллельной передачи через копию сообщений), тогда вам нужно будет использовать одну очередь для публикации вашего первого микросервиса, а ваш прослушиватель InfluxDB для использования из ... затемон делает свой контент маршрутизации / принятия решений, а затем публикуетсообщение возвращается во 2-ю очередь, откуда 2-й микросервис может получить.По сути, это делает прослушиватель InfluxDB просто еще одним микросервисом, который находится в цепочке обработки между микросервисами.

Обратите внимание, что для первых двух вариантов (при наличии копии сообщения, помещенной в две очереди), Solace сохраняет только одну копиюсообщения на диске и поддерживает счетчик ссылок.Таким образом, на использование диска не влияет "разветвление".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...