JMX实战demo

        jmx(java management extension) 是jdk提供的为Java应用提供监控功能的一个标准,类似于jms等,在许多的由java编写的框架如es,tomcat,activiti中都引入了jmx进行应用监控。下面我就来写一个jmx的例子以供参考。

       使用Jmx需要引入一个Jar包(jmxtools-1.2.1.jar),这个jar包不在jdk原生的jar包里面,需要另行下载,然后倒入到项目中去。这里提供一个下载地址

      

http://www.datanucleus.org/downloads/maven2/com/sun/jdmk/jmxtools/1.2.1/

   下面就开始来实现一个jmx的demo

   先创建一个接口TomcatUtilMBean

public interface TomcatUtilMBean {

    void setServerName(String serverName);
    String getServerName();
    void setPort(int port);
    int getPort();
    String getTomcatInfo();
}

然后写一个实现类TomcatUtil

public class TomcatUtil implements TomcatUtilMBean {

    public String serverName = "Catalina";
    public int port = 8080;

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

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

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

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

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

 

 然后创建一个jmx的server

 

public class TomcatMonitor {

    public static void main(String[] args) throws Exception {
        MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer();
        TomcatUtilMBean tomcatUtilMBean = new TomcatUtil();
        mBeanServer.registerMBean(tomcatUtilMBean, new ObjectName("myMBean:name=tomcatUtil"));
        HtmlAdaptorServer htmlAdaptorServer = new HtmlAdaptorServer();
        htmlAdaptorServer.setPort(8888);
        mBeanServer.registerMBean(htmlAdaptorServer, new ObjectName("myMBean:name = htmlAdaptor,port=8888"));
        htmlAdaptorServer.start();
    }
}

 启动后在浏览器访问http://localhost:8888 即可看到jmx的管理界面。如下

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章