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的管理界面。如下

 

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