利用JMX的Notifications监听GC
JMX
JMX(Java Management Extensions)是一个为应用程序植入管理功能的框架。JMX是一套标准的代理和服务,
实际上,用户可以在任何Java应用程序中使用这些代理和服务实现管理。主要用于对JAVA应用程序和JVM进行监控和管理。
包java.lang.management javax.management
JMX分为三层
基础层MBean,分为标准MBean、动态MBean、MXBean等
代理层(适配层)提供对MBean的管理
远程代理层,可以通过http、snmp、rmi等不同的协议去管理具体的mbean资源
可使用内置的mxbean和自定义mxbean 暴露系统状态
类型 描述
standard MBean 一个标准的MBean由一个MBean接口(该MBean接口列出了所有被暴露的属性和操作对应的方法)
和一个class(这 个class实现了这个MBean接口并提供被监测资源的功能)组成(接口和class必须放在同一个包下,不然会出错)。
它的命名也必须遵循一定的规范,例如我们的MBean为Test,则接口必须为TestMBean。标准MBean只能操作基本数据类型
dynamic MBean 必须实现javax.management.DynamicMBean接口,所有的属性,方法都在运行时定义
model MBean 与标准和动态MBean相比,你可以不用写MBean类,只需使用javax.management.modelmbean.RequiredModelMBean即可。
RequiredM