2017-02-03 22 views
1

Я должен реализовать решение для мониторинга. По этой причине MetricsMicroService должен собирать метрические данные из других микросервисов. Каждую минуту и ​​для каждого сервера metricsMicroService должен собирать данные из 4-6 других микросервисов и сохранять их в базе данных. Теперь мой вопрос: какой самый эффективный способ передачи метрических данных? С моей точки зрения есть выбор между следующими растворами:Опрос JMX или TCP Pushing: что лучше?

  • опроса данных через JMX
  • толкающие к WebSocket через TCP

ли кто-нибудь совет? Спасибо заранее!

+1

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

ответ

1

Я предпочитаю модель push, так как я могу локально собрать всю статистику JMX, сжать их в полезную нагрузку и сделать одну передачу внешнему прослушивателю, а не делать несколько вызовов в JVM с пульта. Сказав это, несколько нестандартных клиентов JMX поддерживают пакетную обработку запроса (например, Jolokia), а затем это 3 единицы, четверть десятка других. (Не уверен, что Jolokia сжимает, но одно из его развертываний - это WAR, поэтому, вероятно, это не сложно сделать.)