这些Java教程是为JDK 8编写的。本页面中描述的示例和实践未利用后续版本中引入的改进,并可能使用不再可用的技术。
有关Java SE 9及后续版本中更新的语言功能的摘要,请参阅Java语言更改。
有关所有JDK版本的新功能、增强功能以及已删除或弃用选项的信息,请参阅JDK发行说明。
JMX技术可以分为以下三个层次:
使用JMX技术管理资源,首先必须在Java编程语言中对资源进行仪表化。您使用称为MBeans的Java对象来实现对资源仪表化的访问。MBeans必须遵循JMX规范中定义的设计模式和接口。这样做可以确保所有的MBeans以标准化的方式提供受管理资源的仪表化。除了标准MBeans外,JMX规范还定义了一种特殊类型的MBean,称为MXBean。MXBean是引用仅预定义的一组数据类型的MBean。还存在其他类型的MBean,但本教程将集中讨论标准MBeans和MXBeans。
一旦资源通过MBeans进行了仪表化,就可以通过JMX代理来管理它。MBeans不需要了解它们将与之一起操作的JMX代理的相关知识。
MBeans的设计目标是灵活、简单和易于实现。应用程序、系统和网络的开发人员可以以标准化的方式使其产品可管理,而无需了解或投资复杂的管理系统。现有的资源可以通过最小的努力来进行管理。
此外,JMX规范的仪表化层提供了一种通知机制。该机制使得MBeans能够生成和传播通知事件给其他层次的组件。
JMX技术基于的代理(JMX代理)是一个标准的管理代理,直接控制资源并使其可供远程管理应用程序使用。JMX代理通常位于控制的资源所在的机器上,但这并非必需。
JMX代理的核心组件是MBean服务器,它是一个管理的对象服务器,其中注册了MBeans。JMX代理还包括一组管理MBeans的服务,以及至少一个通信适配器或连接器,用于允许管理应用程序访问。
当您实现JMX代理时,不需要知道它将管理的资源的语义或功能。实际上,JMX代理甚至不需要知道它将服务的资源是哪些,因为符合JMX规范进行仪表化的任何资源都可以使用任何提供所需服务的JMX代理。同样,JMX代理也不需要知道将访问它的管理应用程序的功能。
JMX技术仪表化可以通过许多不同的方式访问,可以通过现有的管理协议(如简单网络管理协议SNMP)或专有协议访问。MBean服务器依赖于协议适配器和连接器,使得JMX代理可以从代理的Java虚拟机(Java VM)外的管理应用程序访问。
每个适配器通过特定协议提供MBean服务器中注册的所有MBeans的视图。例如,一个HTML适配器可以在浏览器中显示一个MBean。
连接器提供了一个管理器端接口,处理管理器和JMX代理之间的通信。每个连接器通过不同的协议提供相同的远程管理接口。当远程管理应用程序使用此接口时,它可以通过网络透明地连接到JMX代理,无论使用的是哪种协议。JMX技术提供了一种基于Java远程方法调用(Java RMI)将JMX技术仪表化导出到远程应用程序的标准解决方案。