在dubbo工程中,使用druid監控

介紹:在dubbo項目中,使用druid的監控功能


問題:因爲,在網上找勒,很多的資料,顯示的都是需要在web.xml中配置

<servlet>
      <servlet-name>DruidStatView</servlet-name>
      <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
  </servlet>
  <servlet-mapping>
      <servlet-name>DruidStatView</servlet-name>
      <url-pattern>/druid/*</url-pattern>
  </servlet-mapping>

    可是,我們一般搭建的dubbo項目,使用的shell腳本啓動的,java命令啓動,沒有使用到Tomcat容器,雖然可以使用,

    但是會顯得,很浪費


解決:

    其實,思路是借鑑,dubbo-monitor-simple 工程的思路,在dubbo的啓動項目中,啓動jetty容器,去監控,這個監控

這個容器也不是很大,所以不會有多少性能的損失。

    下面貼出代碼,以及遇到的問題,貼出的爲主要代碼,是在大家已有的dubbo項目上添加即可


pom.xml

<dependency>
    <groupId>org.mortbay.jetty</groupId>
    <artifactId>jetty</artifactId>
    <version>6.1.26</version>
</dependency>

    描述: dubbo啓動jetty依賴的jar


/src/main/resources/META-INF/dubbo/com.alibaba.dubbo.container.Container

myjetty=com.xxxx.insurance.service.demo.common.container.JettyContainer

wKiom1m7sj-DmMsJAAEGUus_6jA730.png

wKiom1m7s7nxL9VpAAAyNwWwLy4544.png


/src/main/java/com/xxxx/insurance/service/demo/common/container/JettyContainer.java

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

wKioL1m7sq6gFGtGAAKvePJ5UR8648.png

描述:直接copy,dubbo的JettyContainer.java過來,修改就可以啦



啓動代碼

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

wKioL1m7swyBUqUrAADintgal2w306.png


腳本啓動

conf/ dubbo.properties

dubbo.container=spring,myjetty
dubbo.log4j.file=logs/dubbo-demo-provider.logdubbo.log4j.level=WARN

wKiom1m7s2qwCwFfAABvIIdwrwM427.png



最後,啓動,訪問

http://localhost:8080/druid/index.html

wKioL1m7s1vA734RAAKf_RiShb0993.png


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