最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一文詳解tomcat中的jmx監(jiān)控

 更新時(shí)間:2024年06月03日 11:45:24   作者:_BugMan  
本文我們將從使用和源碼實(shí)現(xiàn)兩個(gè)方面聊一下jmx的落地實(shí)現(xiàn)范例——tomcat中的jmx,tomcat作為一個(gè)web server,其選用jmx來實(shí)現(xiàn)監(jiān)控功能,之所以選擇jmx是因?yàn)閖mx是java se原生的能力,本文將詳細(xì)的給大家介紹一下tomcat中的jmx監(jiān)控,需要的朋友可以參考下

1.概述

本文我們將從使用和源碼實(shí)現(xiàn)兩個(gè)方面聊一下jmx的落地實(shí)現(xiàn)范例——tomcat中的jmx。

tomcat作為一個(gè)web server,其選用jmx來實(shí)現(xiàn)監(jiān)控功能。之所以選擇jmx是因?yàn)閖mx是java se原生的能力,不需要第三方依賴,在web server這種基礎(chǔ)組件中,選用原生的技術(shù)可以避免很多三方依賴帶來的不便。

2.如何開啟tomcat的JMX

jmx是由JVM來支持實(shí)現(xiàn)的標(biāo)準(zhǔn),所以開啟jmx本質(zhì)上就是通過配置啟動(dòng)參數(shù)的方式來實(shí)現(xiàn)的,例如,以下是一個(gè)簡單的 Java 命令,啟用了 JMX 監(jiān)聽,并配置了 JMX 服務(wù)器的地址和端口:

java -Dcom.sun.management.jmxremote \
     -Dcom.sun.management.jmxremote.port=9999 \
     -Dcom.sun.management.jmxremote.authenticate=false \
     -Dcom.sun.management.jmxremote.ssl=false \
     -jar myapplication.jar

tomcat本質(zhì)也是個(gè)Java程序,所以也是通過配置啟動(dòng)參數(shù)來開啟jmx的。本文是基于Windows環(huán)境來配置的,Linux環(huán)境其實(shí)也大差不差。配置Catalina.bat,在Execute The Requested Command下面加上下面的配置:

set JAVA_OPTS=%JAVA_OPTS% -Djava.rmi.server.hostname=192.168.56.1 -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.rmi.port=9999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false

然后啟動(dòng)tomcat,打開jconsole:

連接上我們啟動(dòng)的這個(gè)tomcat,MBean列表里面可以看到tomcat的所有MBean,對tomcat源碼熟悉的讀者會發(fā)現(xiàn),tomcat的核心組件都以MBean的方式被注冊進(jìn)JMX Server中了。

3.tomcat如何實(shí)現(xiàn)JMX的源碼分析

首先博主去github上下載了tomcat7.0.105版本的源碼。前面我們聊過jmx,要使用jmx,就要先注冊相關(guān)的MBean。tomcat里面有一個(gè)jmxEnabled接口,這個(gè)接口就是用來實(shí)現(xiàn)MBean的注冊的。它定義了兩個(gè)方法,一個(gè)用來注冊MBean,一個(gè)用來卸載MBean。

這個(gè)接口的實(shí)現(xiàn)類是LifecycleMBeanBase,這個(gè)類里實(shí)現(xiàn)了注冊和卸載MBean的方法。對tomcat源碼有了解的讀者對這個(gè)類會很熟悉(當(dāng)然不了解也別怕),LifecycleMBeanBase這個(gè)類是tomcat中用來管理各個(gè)組件的生命周期的,也就是說這個(gè)組件里會實(shí)現(xiàn)一些在各個(gè)組件初始化或者銷毀的時(shí)候要做的額外動(dòng)作。

來我們好好讀一下這里的源碼:

protected void initInternal() throws LifecycleException {
        // If oname is not null then registration has already happened via
        // preRegister().
        if (oname == null) {
            獲取MBeanServer
            mserver = Registry.getRegistry(null, null).getMBeanServer();
            //注冊MBean
            oname = register(this, getObjectNameKeyProperties());
        }
    }
//注冊MBean的方法   
protected final ObjectName register(Object obj,
            String objectNameKeyProperties) {
?
        // Construct an object name with the right domain
        StringBuilder name = new StringBuilder(getDomain());
        name.append(':');
        name.append(objectNameKeyProperties);
?
        ObjectName on = null;
?
        try {
            on = new ObjectName(name.toString());
            //將自己注冊到MBeanServer中
            Registry.getRegistry(null, null).registerComponent(obj, on, null);
        } catch (MalformedObjectNameException e) {
            log.warn(sm.getString("lifecycleMBeanBase.registerFail", obj, name),
                    e);
        } catch (Exception e) {
            log.warn(sm.getString("lifecycleMBeanBase.registerFail", obj, name),
                    e);
        }
?
        return on;
    }

以上就是一文詳解tomcat中的jmx監(jiān)控的詳細(xì)內(nèi)容,更多關(guān)于tomcat jmx監(jiān)控的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Tomcat配置HTTPS訪問的實(shí)現(xiàn)步驟

    Tomcat配置HTTPS訪問的實(shí)現(xiàn)步驟

    本文主要介紹了Tomcat配置HTTPS訪問的實(shí)現(xiàn)步驟,在tomcat中存在兩種證書驗(yàn)證情況單向驗(yàn)證和雙向驗(yàn)證,下面就詳細(xì)的介紹一下這兩種情況的配置,感興趣的可以了解一下
    2022-07-07
  • 一次tomcat自動(dòng)關(guān)閉的bug解決

    一次tomcat自動(dòng)關(guān)閉的bug解決

    這篇文章主要給大家介紹了一次關(guān)于tomcat自動(dòng)關(guān)閉的bug的解決過程,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用tomcat具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Apache Tomcat服務(wù)器版本號隱藏的幾種方法

    Apache Tomcat服務(wù)器版本號隱藏的幾種方法

    本文主要介紹了Apache Tomcat服務(wù)器版本號隱藏的幾種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • TongWeb替換tomcat的實(shí)現(xiàn)步驟

    TongWeb替換tomcat的實(shí)現(xiàn)步驟

    隨著技術(shù)的發(fā)展和業(yè)務(wù)需求的變化,有時(shí)候我們需要將Web項(xiàng)目從Tomcat遷移到TongWeb,這篇文章主要介紹了TongWeb替換tomcat的實(shí)現(xiàn)步驟,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-09-09
  • Tomcat安全設(shè)置 win2003 下tomcat權(quán)限限制

    Tomcat安全設(shè)置 win2003 下tomcat權(quán)限限制

    Tomcat安全設(shè)置 win2003 下tomcat權(quán)限限制,需要的朋友可以參考下。
    2011-03-03
  • Tomcat Server的設(shè)計(jì)和實(shí)現(xiàn):StandardServer詳解

    Tomcat Server的設(shè)計(jì)和實(shí)現(xiàn):StandardServer詳解

    文章主要介紹了Tomcat中StandardServer的整體類依賴結(jié)構(gòu),通過解析server.xml文件來理解Server的相關(guān)配置屬性及其作用,感興趣的朋友跟隨小編一起看看吧
    2026-04-04
  • Tomcat靜態(tài)資源緩存實(shí)現(xiàn)步驟

    Tomcat靜態(tài)資源緩存實(shí)現(xiàn)步驟

    Tomcat中配置靜態(tài)資源緩存通過設(shè)置HTTP響應(yīng)頭來實(shí)現(xiàn),可以控制瀏覽器如何緩存靜態(tài)資源,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-11-11
  • 淺談Tomcat亂碼與端口占用的解決方案

    淺談Tomcat亂碼與端口占用的解決方案

    這篇文章主要介紹了淺談Tomcat亂碼與端口占用的解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Tomcat監(jiān)測腳本的實(shí)現(xiàn)示例

    Tomcat監(jiān)測腳本的實(shí)現(xiàn)示例

    這篇文章主要給大家介紹了Tomcat監(jiān)測腳本的實(shí)現(xiàn)方法,文中給出了詳細(xì)的示例代碼和介紹,對大家具有一定的參考價(jià)值,有需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)把。
    2017-01-01
  • tomcat雙擊startup.bat一閃而過(閃退)的問題解決

    tomcat雙擊startup.bat一閃而過(閃退)的問題解決

    本文主要介紹了tomcat雙擊startup.bat一閃而過(閃退)的問題解決,可能是tomcat找不到你的jdk環(huán)境配置路徑,下面就來介紹一下解決方法,感興趣的可以了解一下
    2024-05-05

最新評論

临泽县| 闽侯县| 紫金县| 松桃| 礼泉县| 华亭县| 金门县| 英超| 湖南省| 寿宁县| 遂溪县| 封丘县| 万载县| 大安市| 江陵县| 乾安县| 嘉峪关市| 曲麻莱县| 外汇| 玛纳斯县| 石泉县| 酒泉市| 巴塘县| 洛宁县| 罗定市| 义乌市| 通渭县| 武穴市| 海伦市| 吴桥县| 舟山市| 聂荣县| 丰县| 资兴市| 长春市| 五指山市| 卓尼县| 图们市| 寻甸| 墨竹工卡县| 阳信县|