亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

一文詳解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來(lái)實(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來(lái)實(shí)現(xiàn)監(jiān)控功能。之所以選擇jmx是因?yàn)閖mx是java se原生的能力,不需要第三方依賴(lài),在web server這種基礎(chǔ)組件中,選用原生的技術(shù)可以避免很多三方依賴(lài)帶來(lái)的不便。

2.如何開(kāi)啟tomcat的JMX

jmx是由JVM來(lái)支持實(shí)現(xiàn)的標(biāo)準(zhǔn),所以開(kāi)啟jmx本質(zhì)上就是通過(guò)配置啟動(dòng)參數(shù)的方式來(lái)實(shí)現(xiàn)的,例如,以下是一個(gè)簡(jiǎn)單的 Java 命令,啟用了 JMX 監(jiān)聽(tīng),并配置了 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程序,所以也是通過(guò)配置啟動(dòng)參數(shù)來(lái)開(kāi)啟jmx的。本文是基于Windows環(huán)境來(lái)配置的,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,打開(kāi)jconsole:

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

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

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

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

來(lái)我們好好讀一下這里的源碼:

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();
            //注冊(cè)MBean
            oname = register(this, getObjectNameKeyProperties());
        }
    }
//注冊(cè)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());
            //將自己注冊(cè)到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)控的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 如何設(shè)置Tomcat的默認(rèn)端口(圖文)

    如何設(shè)置Tomcat的默認(rèn)端口(圖文)

    Tomcat安裝時(shí)默認(rèn)的端口設(shè)置的是8080,而http協(xié)議的默認(rèn)端口是80,所以測(cè)試Tomcat時(shí)需要輸入的網(wǎng)址為“http://localhost:8080”,若把Tomcat的端口設(shè)置為80,則直接輸入“http://localhost”就能顯示Tomcat默認(rèn)主頁(yè),下面我們來(lái)分享下,方便需要的朋友
    2014-06-06
  • 解決tomcat部署下的web項(xiàng)目網(wǎng)頁(yè)更改不能自動(dòng)刷新的問(wèn)題

    解決tomcat部署下的web項(xiàng)目網(wǎng)頁(yè)更改不能自動(dòng)刷新的問(wèn)題

    下面小編就為大家?guī)?lái)一篇解決tomcat部署下的web項(xiàng)目網(wǎng)頁(yè)更改不能自動(dòng)刷新的問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • tomcat在linux中修改日志路徑

    tomcat在linux中修改日志路徑

    這篇文章主要介紹了tomcat在linux中修改日志路徑,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-03
  • tomcat如何更改默認(rèn)ROOT目錄

    tomcat如何更改默認(rèn)ROOT目錄

    這篇文章主要介紹了tomcat如何更改默認(rèn)ROOT目錄問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • 項(xiàng)目啟動(dòng)tomcat失敗的幾種可能原因和解決方法(小結(jié))

    項(xiàng)目啟動(dòng)tomcat失敗的幾種可能原因和解決方法(小結(jié))

    本文主要介紹了項(xiàng)目啟動(dòng)tomcat失敗的幾種可能原因和解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • intelli idea中配置Tomcat找不到的解決辦法

    intelli idea中配置Tomcat找不到的解決辦法

    這篇文章主要介紹了intelli idea中配置Tomcat找不到的解決辦法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Maven3.8.1使用Tomcat8插件啟動(dòng)項(xiàng)目的方法(親測(cè)有效)

    Maven3.8.1使用Tomcat8插件啟動(dòng)項(xiàng)目的方法(親測(cè)有效)

    在本地maven的settings.xml文件中添加阿里云鏡像,然后在pom.xml文件中添加tomcat8插件的配置,重新下載依賴(lài),運(yùn)行tomcat8:run命令,成功啟動(dòng)項(xiàng)目,本文介紹Maven3.8.1使用Tomcat8插件啟動(dòng)項(xiàng)目的方法,感興趣的朋友一起看看吧
    2024-11-11
  • Tomcat弱口令復(fù)現(xiàn)及利用(反彈shell)

    Tomcat弱口令復(fù)現(xiàn)及利用(反彈shell)

    本文主要介紹了Tomcat弱口令復(fù)現(xiàn)及利用(反彈shell),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • 解決tomcat的中文問(wèn)題

    解決tomcat的中文問(wèn)題

    今天給大家分享的是解決tomcat中由于字符集不直接支持中文問(wèn)題的方法,非常的簡(jiǎn)單實(shí)用,推薦給大家,有需要的小伙伴可以參考下。
    2015-03-03
  • Tomcat實(shí)現(xiàn)session共享(session 會(huì)話(huà)復(fù)制)

    Tomcat實(shí)現(xiàn)session共享(session 會(huì)話(huà)復(fù)制)

    這篇文章主要介紹了Tomcat實(shí)現(xiàn)session共享,其實(shí)就是session 會(huì)話(huà)復(fù)制的相關(guān)方法,需要的朋友可以參考下
    2017-09-09

最新評(píng)論