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

这里写图片描述

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