JMX及其Tomcat中应用整理

    接触JMX已经很久了,但是一直感觉比较模糊,然后在读Tomcat内核分析时,再次遇到,因此思考下,整理下来。

    JMX(Java Manager Extension),类似JMS,是一个Java管理体系的规范标准,主要负责系统管理和监控,基于此规范扩展的系统具有管理监控的功能,可以动态监控和修改内存中变量。利用在Tomcat中,可以监控和管理服务器性能,JVM参数,WEB连接数,线程池,数据库连接池,配置文件重新啊加载等并且提供了远程友好的可视化管理等,并且,实时性高,同时为分布式系统管理提供一个基础框架和丰富的管理手段。

   JMX体系结构三个层次,设备层,代理层 ,分布服务层,以下分别简述

1 设备层(Instrumentation Level),定义了信息模型,定义了实现JMX管理的资源,管理构件(MBean),可以使java应用,服务,一个设备。

2 代理层(Agent Level),定义了各种服务以及通信模型,核心是MBean服务器,所有管理构件向它注册。

3 分布服务层(Distributed Service Level)。负责使JMX代理对外界可用,定义了能够对代理层进行操作的管理接口和构件,具体内容依靠适配器实现,这样外部管理者就可以操作代理。

下面开始展示一个JMX的用途

1 定义一个MBean接口

public interface TomcatUtilMBean {
    void setServerName(String serverName);

    String getServerName();

    void setPort(int port);

    int getPort();

    String getTomcatInfo();
}

2 定义一个Mean实现类

public class TomcatUtil implements TomcatUtilMBean {
    private String serverName = "Catalina";
    private int port = 8080;

    @Override
    public String getServerName() {
        return serverName;
    }

    @Override
    public void setServerName(String serverName) {
        this.serverName = serverName;
    }

    @Override
    public int getPort() {
        return port;
    }

    @Override
    public void setPort(int port) {
        this.port = port;
    }

    @Override
    public String getTomcatInfo() {
        return "The Tomcat's name is " + serverName + ",port is " + port;
    }
}

3 注册Mean并启动JMX服务

public class TomcatMonitor {
    public static void main(String args[]) throws Exception {
        MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer();
        TomcatUtilMBean tomcatUtil = new TomcatUtil();
        mBeanServer.registerMBean(tomcatUtil, new ObjectName("myBean:name=tomcatUtil"));
        while (true) {
            Thread.sleep(1000);
        }
    }
}

    启动TomcatMonitor类,用Jconsole控制台Mean模块下的myBean就能看到tomcatUtil的属性和方式,可以查看属性的值,并且可以运行方法,实现动态对应用的监控和管理。

以上演示了用JMX为一个应用程序,设备,系统等植入监控和管理功能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值