JMX 的使用以及如何用于现有应用程序

2022-09-03 06:33:10

几年前,我们已经在JDK 5上开发了分布式Web应用程序。

JMX将如何帮助这个应用程序?

1)它能帮助我监控性能(内存,CPU和网络和磁盘IO)吗?

2)如果是这样,那么应用程序部署在多个服务器中,如何在单个仪表板中进行监控?

3) 我是否必须对现有应用程序进行任何新的代码更改,或者是否可以在不更改代码的情况下进行监视?

4)除了性能监控,我们还能做些什么?因为名称是管理扩展 (MX),所以我们可以管理什么以及如何管理?似乎主要目标不是监控,而是管理?

我无法从Oracle网站 http://docs.oracle.com/javase/tutorial/jmx/overview/why.html 提供的教程中获得太多有关JMX的信息。似乎一些业务代表准备了本教程而不是技术人员。

任何人都可以帮助我理解这个JMX的东西,您的努力是真诚的感谢。

谢谢,你的朋友。


答案 1

JMX 是一种从正在运行的系统中获取信息并调用其上的操作的标准化方法。JVM 为您提供了一组 MBean,通过这些 MBean,您可以访问运行时数据,如内存消耗、GC 统计信息和更多数据。您还可以调用许多操作。您的应用程序服务器还将为您提供许多 MBean,您可以使用这些 MBean 来控制服务器和已安装的应用程序。

  1. 是的,它将为您提供一些性能数据。有关资源列表,请参阅 http://docs.oracle.com/javase/1.5.0/docs/guide/management/overview.html
  2. 这取决于您的应用程序服务器。如果它支持群集环境,它可能会给你一个仪表板。
  3. 如果您对标准 JVM 和应用服务器 MBean 感到满意,则无需进行任何更改。但是,您可能希望编写自己的 MBean 来提供特定的应用程序状态和统计信息,或者提供控制应用程序的方法。查看 http://docs.oracle.com/javase/tutorial/jmx/mbeans/standard.html
  4. 好吧,你可以以标准化的方式做任何你喜欢的事情。

看看jconsole(包含在JDK中),看看JMX为你提供了什么!


答案 2

推荐