Dubbo服務使用druid數據源,使用內置jetty進行監控查看。

druid數據源是一款很好的監控數據庫的數據源,可以很清楚的記錄一些sql執行記錄,慢日誌查詢記錄。首先要知道dubbo的容器啓動。默認就是啓動spring。但是使用的數據源是druid的情況下sql是在服務端執行的,服務端基本都是獨立jar包執行,放在單獨服務器上太浪費資源了。其實dubbo內置了jetty容器,我們只要把數據源監聽放到下面就可以了。節省資源。這裏介紹一些dubbo服務的使用druid數據源,使用內置jetty容器。

首先來看下默認的jar寫法

這裏寫圖片描述

其中JettyContainer是啓動jetty具體的類,而下面的com.alibaba.dubbo.container.Container是配置這個類的路徑:jetty=com.alibaba.dubbo.container.jetty.JettyContainer

重寫

新建類JettyContainer,拷貝jar包裏面的代碼,增加

// 日誌監控系統的
        handler.addServletWithMapping(StatViewServlet.class, "/druid/*");

這裏寫圖片描述

增加配置文件com.alibaba.dubbo.container.Container
這裏寫圖片描述
把新建的類寫入裏面。jetty對應容器名字,可以自定義。

jetty=com.container.JettyContainer

編寫測試類:

新建類JettyContainerStart

public class JettyContainerStart {
    public static void main(String[] args) {
         args = new String[] { "spring", "myjetty" };  
        com.alibaba.dubbo.container.Main.main(args);
    }
}

執行,在瀏覽器上訪問http://192.168.1.196:8080/druid
這裏寫圖片描述

注意:如果端口被佔用,可以修改JettyContainer裏面的默認端口值。

打jar包執行報錯:

這裏寫圖片描述

分析一下,應該是打jar沒用把METE-INF的內容打包進去。修改pom.xml
在build標籤裏面的resources裏面增加

      <!-- 複製META-INF下面的配置到生成jar下,包括自定義的jetty內置容器和ip過濾白名單 -->
            <resource>
                <targetPath>${project.build.directory}/classes/META-INF/dubbo/internal</targetPath>
                <directory>src/main/resources/META-INF/dubbo/internal</directory>
                <filtering>true</filtering>
                <includes>
                    <include>*</include>
                </includes>
            </resource>

增加配置文件dubbo.properties

#配置傳入要加載的容器
dubbo.container=spring,jetty,log4j

這裏寫圖片描述

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