JMX为管理和监测资源的应用程序定义了一个通过架构、设计模式、API和服务。JMX可以管理和监测的资源包括应用程序、设备、服务和Java虚拟机。
JMX是一个规范,由JSR3和JSR160共同定义。
JMX典型的应用包括但不限于以下三种:
第二类应用有个现成的例子,就是JDK工具套装中的jconsole。JConsole是一个JMX兼容的图形界面工具,它能够连接到本地或远程的JVM,检测JVM的运行情况,例如内存使用情况、线程的数量、已装入类的数目以及VM的其它数据。JConsole将这些JVM的数据以图形化的方式展现给用户。下图是jconsole的运行截图。
第三类应用 是JMX的重要应用。我还没有遇到一个合适的例子。如果以后见到,再补充进来。
JMX的核心API是JavaSE的一部分。因此,开发基本的JMX应用程序,是不需要额外的包的。如果需要使用到一些高级的功能,如协议适配器,则可能需要引入额外的包。
下面介绍一些JMX的基本架构。
JMX架构分为三层,自底向上依次是设备层、代理层和分布式服务层。
设备层包含所有被管理和监测的资源。JMX可管理的资源可以是任何软硬件,包括应用程序、服务组件、设备等。我们把这些资源称为托管资源。托管资源被包装成一个Java对象——MBean,以便该资源能够被JMX兼容的应用程序所管理。MBean是JMX架构中的基本组件,它代表了托管资源。MBean共有四种类型,分别是标准MBean、动态MBean、开放MBean和模型MBean。这四种MBean的差异会在以后的文章中介绍到。
代理层的主要角色是JMX代理。JMX代理被实现为MBeanServer对象。所有的MBean对象都被注册到MBeanServer上,以便被查询和控制。
分布式服务层定义了JMX应用程序所需的接口。JMX应用程序通过该接口,与MBean进行交互。
JMX是一个规范,由JSR3和JSR160共同定义。
JMX典型的应用包括但不限于以下三种:
- 管理应用程序的配置
- 统计并展现应用程序的行为
- 当资源的状态发生变化时发出通知
第二类应用有个现成的例子,就是JDK工具套装中的jconsole。JConsole是一个JMX兼容的图形界面工具,它能够连接到本地或远程的JVM,检测JVM的运行情况,例如内存使用情况、线程的数量、已装入类的数目以及VM的其它数据。JConsole将这些JVM的数据以图形化的方式展现给用户。下图是jconsole的运行截图。
第三类应用 是JMX的重要应用。我还没有遇到一个合适的例子。如果以后见到,再补充进来。
JMX的核心API是JavaSE的一部分。因此,开发基本的JMX应用程序,是不需要额外的包的。如果需要使用到一些高级的功能,如协议适配器,则可能需要引入额外的包。
下面介绍一些JMX的基本架构。
JMX架构分为三层,自底向上依次是设备层、代理层和分布式服务层。
设备层包含所有被管理和监测的资源。JMX可管理的资源可以是任何软硬件,包括应用程序、服务组件、设备等。我们把这些资源称为托管资源。托管资源被包装成一个Java对象——MBean,以便该资源能够被JMX兼容的应用程序所管理。MBean是JMX架构中的基本组件,它代表了托管资源。MBean共有四种类型,分别是标准MBean、动态MBean、开放MBean和模型MBean。这四种MBean的差异会在以后的文章中介绍到。
代理层的主要角色是JMX代理。JMX代理被实现为MBeanServer对象。所有的MBean对象都被注册到MBeanServer上,以便被查询和控制。
分布式服务层定义了JMX应用程序所需的接口。JMX应用程序通过该接口,与MBean进行交互。