我必须实现监控解决方案。 出于这个原因,MetricsMicroService 必须从其他微服务收集指标数据。每分钟,对于每个服务器,metricsMicroService 必须从 4-6 个其他微服务收集数据并将其保存到数据库中。 现在我的问题是:传输指标数据的最佳方式是什么? 从我的角度来看,可以在以下解决方案之间进行选择:
- 通过 JMX 轮询数据
- 通过 TCP 推送到 WebSocket
有人有什么建议吗? 提前致谢!
最佳答案
我更喜欢推送模型,因为我可以在本地收集所有 JMX 统计数据,将它们压缩到有效负载中,然后将一次传输发送到外部监听器,而不是从远程多次调用 JVM。话虽如此,一些非标准的 JMX 客户端支持请求批处理(例如 Jolokia ),然后它是一个中的三个,另一个中的四分之一。 (不确定 Jolokia 是否压缩,但其中一个部署是作为 WAR,因此可能不难做到这一点。)
关于java - JMX 轮询或 TCP 推送 : What is better?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42024267/