JMX轮询或TCP推送:什么更好?

时间:2017-02-03 12:24:36

标签: java performance tcp jmx

我必须实施监控解决方案。 因此,MetricsMicroService必须从其他微服务中收集度量数据。每分钟,对于每个服务器,metricsMicroService必须从4-6个其他微服务中收集数据并将其保存到数据库中。 现在我的问题是:传输度量数据的最高效方法是什么? 从我的观点来看,可以选择以下解决方案:

  • 通过JMX轮询数据
  • 通过TCP推送到WebSocket

有人有建议吗? 提前谢谢!

1 个答案:

答案 0 :(得分:1)

我倾向于更喜欢推送模型,因为我可以在本地收集所有JMX统计数据,将它们压缩到有效负载中并向外部侦听器传输一次,而不是从远程调用JVM进行多次调用。话虽如此,一些非标准的JMX客户端支持请求批处理(例如Jolokia),然后它是一个中的3个,另外一个是四分之一。 (不确定Jolokia是否会压缩,但其中一个部署是作为WAR,因此可能不难做到这一点。)