java - JMX 轮询或 TCP 推送 : What is better?

标签 java performance tcp jmx

我必须实现监控解决方案。 出于这个原因,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/

相关文章:

c++ - 快速读取和写入文件数据

c# - 打开并使用 TCP 端口

使用 Erlang 的 gen_tcp 模块的 Elixir 上的 TCP 监听器

java - libGDX 操作 : when they will execute

python - 如何根据pandas中的多列快速选择数据框

java - spring boot将特定的DataSource分配给JpaRepository

C++ weak_ptr创建性能

c# - 服务器给出异常并且无法启动

java - Java 7 中的 Regex-replace-with-function-evaluation 等效于什么?

java - Android Studio JDK完成非零值2