什么是JMX
所谓JMX,是Java Management Extensions(Java管理扩展)的缩写,是一个为应用程序植入管理功能的框架。用户可以在任何Java应用程序中使用这些代理和服务实现管理。
JMX架构图
从图中我们可以看到,JMX的结构一共分为三层,从下往上分别为:
- 基础层:主要是Mbean,被管理的Java bean
- Standard MBean:这种类型的MBean最简单,它能管理的资源(包括属性,方法,时间)必须定义在接口中,然后MBean必须实现这个接口。它的命名也必须遵循一定的规范,例如我们的MBean为Hello,则接口必须为HelloMBean
- Dynamic MBean:必须实现javax.management.DynamicMBean接口,所有的属性,方法都在运行时定义
- Model MBean:与标准和动态MBean相比,你可以不用写MBean类,只需使用javax.management.modelmbean.RequiredModelMBean
- Required Model MBean实现了Model MBean接口,而Model MBean扩展了Dynamic MBean接口,因此与Dynamic MBean相似,Model MBean的管理资源也是在运行时定义的。与Dynamic MBean不同的是,Dynamic MBean管理的资源一般定义在Dynamic MBean中(运行时才决定管理那些资源),而Model MBean管理的资源并不在MBean中,而是在外部(通常是一个类),只有在运行时,才通过set方法将其加入到Model MBean中
-
适配层:Mbean Server,提供对资源的注册和管理
-
接入层:提供远程访问的入口