监控和管理服务是 Java 中不太常用的功能之一,不是因为它们不重要或可以取消它们,而是因为它们是在特殊情况下使用的。
它专门针对那些对其应用程序的性能至关重要并且需要一些实用程序来衡量和管理它的开发人员和系统管理员。Java 为这方面的综合处理提供了广泛的支持。但是,不可能提供 Java 平台的监控和管理功能的完整概述,本文试图快速而简短地描述这项技术的关键方面。
概述
Java平台提供的监控和管理功能大致可以分为:
Java 虚拟机检测
监控和管理 API
监控和管理工具
Java 管理扩展 (JMX) 技术
Java 虚拟机检测
它被称为 JVM 的开箱即用管理工具,它提供了一种内置机制来监视 JVM 和在其上运行的应用程序,无论是在本地还是从远程机器。应适当设置应用程序以在执行期间启用此功能。Java 平台利用 Java 管理技术 (JMX) 技术来实现此功能。要启用此功能,我们需要创建一个名为 MBean(Managed Bean)的 JMX 代理,然后将其注册到 MBean 服务器。MBean 只不过是代表要管理的资源的 Java 对象。
监控和管理 API
监控和管理 API 打包在 java.lang.management 下。它们提供了用于在运行时动态管理和监控 JVM 和底层操作系统的编程接口。API 提供了在远程和本地级别监视和管理 JVM 以及可以监视它们的应用程序的功能。API可以访问有关以下方面的动态信息:
加载的类
正在运行的线程,例如它们的状态、争用统计信息和堆栈跟踪
正在运行的应用程序消耗的内存状态
垃圾回收的统计信息
死锁检测
底层操作系统
根据 Java 9 建议,可以通过 java.management 模块下的 java.lang.management 包中声明的 PlatformLoggingMXBean 接口检索日志信息。在版本 9 之前,直到 Java 8,日志信息由 java.util.logging 包中声明的 LoggingMXBean 接口检索。LoggingMXBean 中声明的方法现在已弃用。
API 还提供了必要的接口,以便从现有应用程序中将 JConsole 作为插件访问。
监控和管理工具
Java SE 提供的主要监控和管理工具是 JConsole。它是一种在图形窗口中提供内存、线程、类、JVM 信息和其他信息的工具。运行时统计数据是在图形和图表的帮助下提供的。JConsole 是 JMX API 的实现,可用于监控 JVM 或任何其他专门用于监控的应用程序的运行时性能。
Java 管理扩展 (JMX) 技术
Java Management Extension 是通过 Java Management Extension (JSR 3) 和 JMX Remote API (JSR 160) 开发的规范。JMX API 专门用于管理和监视 Java 平台资源,例如 JVM 本身、设备、它提供的服务以及在其上运行的应用程序。
根据 Java Platform SE Management and Extension Guide,JMX 规范在 Java 编程语言中定义了架构、设计模式、API 以及用于应用程序和网络管理和监控的服务。
为了使用这项技术,一个或多个 Java 对象(称为托管 Bean (MBean))检测指定的资源。这些 MBean 注册在称为 MBean 服务器的核心托管对象服务器中。MBean 服务器充当管理代理,可以在大多数支持 Java 编程语言的设备上运行。
结论
问题的关键在于 Java 监控和管理服务是围绕 JMX 技术构建的。因此,在开始使用监控和管理服务之前了解 JMX 至关重要。JConsole 是监视和管理 Java 应用程序的福音。它提供了必要的信息来监控正在运行的应用程序下面的内容并有效地对其进行微调,除了在运行时管理和监控 JVM,无论是远程还是本地。
发表评论 取消回复