Java基础之JMX

来源:互联网 发布:淘宝外贸原单死人衣服 编辑:程序博客网 时间:2024/05/17 22:39

JMX简介

  JMX是Java Management Extensions 的简写,即Java管理扩展。JMX是Java官方提供的一套用于监控Java程序和JVM运行时状态的标准API。JMX的监控内容可以分为三方面:

  1. 系统监控:如CPU、LOAD、内存等;
  2. JVM监控:如堆内存、FGC、类加载等;
  3. 应用监控:如任务堆积、数据对账等;

JMX技术架构

  JMX的技术架构分为3层:检测层、代理层和远程管理层,如下图所示:
JMX技术架构
检测层:各种监控信息的收集,每个MBean对应一个监控项,用于采集具体的监控数据;
代理层: Mbean Server有两个作用,一是作为Mbean容器管理各种Mbean;二是与外部程序进行交互提供监控信息;
远程管理层:相当于监控中心,一方面将监控信息图表化展示及深层次加工;另一方面将多种应用进行集中管理;

Mbean Server

  JVM启动的时候,会启动platform MBean server,应用程序可以启动自己的MBean Server,也可以使用JVM默认启动的platfomr MBean Server。

//获取JVM默认启动的Platform MBean ServerMBeanServer mbs = ManagementFactory.getPlatformMBeanServer();

Mbean

分类

  1. 标准MBeans
  2. 动态MBeans
  3. Open MBeans
  4. Model MBeans
  5. MXBeans

注册

 MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); ObjectName name = new ObjectName("com.tianshouzhi.jmx.mbean:type=Hello"); Hello mbean = new Hello();//MBean创建 mbs.registerMBean(mbean, name);//MBean注册

JMX远程连接

远程连接配置参数

JMX远程连接开关:-Dcom.sun.management.jmxremote(JDK6之后不再需要)
JMX远程连接端口:-Dcom.sun.management.jmxremote.port=1090
JMX远程连接是否使用ssl:-Dcom.sun.management.jmxremote.ssl=false/true
JMX远程连接是否开启用户认证:-Dcom.sun.management.jmxremote.authenticate=false/true
JMX提供服务主机名:-Djava.rmi.server.hostname=127.0.0.1

JConsole

JConsole是Java内置的基于JMX的图形化管理工具,是最常用的JMX连接器。