16

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

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

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

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

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

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

从 Oracle 网站http://docs.oracle.com/javase/tutorial/jmx/overview/why.html中提供的教程中,我对 JMX 了解不多。似乎某些业务代表准备了本教程,而不是技术人员。

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

谢谢,你的朋友。

4

1 回答 1

20

JMX 是一种从正在运行的系统中获取信息并在其上调用操作的标准化方法。JVM 为您提供了一组 MBean,您可以通过这些 MBean 访问运行时数据,例如内存消耗、GC 统计信息和更多数据。您还可以调用许多操作。您的应用服务器还将为您提供许多 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 为您提供了什么!

于 2012-02-10T21:28:08.787 回答