`
younglibin
  • 浏览: 1213847 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

淘宝druid工具使用

 
阅读更多

最近公司发现代码效率运行很低, 而且经常锁住数据库,意外发现了 druid 这个东西,说实话第一次碰到竟然是为 他的SQLutils,今天再开才发现他正式我想要的数据库sql执行监控工具, 废话不多说了,开始配置,为了能看到效果直接在我现在的项目上改,

druid 提供的文档真好,正式我们能看懂的中文文档:

https://github.com/alibaba/druid/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98

 

源码: https://github.com/alibaba/druid

 

在文档中, 说的非常详细, 我按照文档 文档基本半个小时就配置号;

以下是我的配置步骤:

 

1、druid的jar包 写道
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>${druid-version}</version>
</dependency>

现在最新版是 1.0.9

 

2、配置监控服务 写道
用druid 就是为了使用它的监控功能, 如果没有监控, 那我们看起来比较麻烦


https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_StatFilter


druid 是控制sql 所以在数据源这里做了配置, 他们修改了spring的dbcp连接, 可能实在自己的数据源链接中添加了一些监控sql 的脚本

我是通过 bean 的方式配置的 其他配置方式见原网页
<bean id="stat-filter" class="com.alibaba.druid.filter.stat.StatFilter">
<property name="slowSqlMillis" value="10000" />
<property name="logSlowSql" value="true" />
<property name="mergeSql" value="true" />
</bean>
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
init-method="init" destroy-method="close">
... ...
<property name="filters" value="log4j" />
<property name="proxyFilters">
<list>
<ref bean="stat-filter" />
</list>
</property>
</bean>
 
这里配置注意使用 数据源链接方式  需要修改为com.alibaba.druid.pool.DruidDataSource, 否则会找不到 proxyFilters 这个属性

 

3、配置监控页面 写道
<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>

 

4、和服务融合 写道
我使用的spring,这里说下我的配置, 其他的可参考源文档

<bean id="druid-stat-interceptor"
class="com.alibaba.druid.support.spring.stat.DruidStatInterceptor">
</bean>

<bean id="druid-stat-pointcut" class="org.springframework.aop.support.JdkRegexpMethodPointcut"
scope="prototype">
<property name="patterns">
<list>
<value>com.mycompany.service.*</value>
<value>com.mycompany.dao.*</value>
</list>
</property>
</bean>

<aop:config>
<aop:advisor advice-ref="druid-stat-interceptor"
pointcut-ref="druid-stat-pointcut" />
</aop:config>

 

我们启动我们服务, 我启动过程还是比较顺利的,如果原服务正常启动, 添加了druid出错了, 那就是配置错误了, 按照错误提示一步一步找应该能找到问题所在

 

 

看下我启动的效果吧:

 

输入你的用户名在 地址栏输入:应用地址:端口/web服务/druid



 

 

看到效果了, 哈哈, 看下数据源连接吧展示一下部分信息:



 

 

 

     

我本地只做了一次简单操作,所以数据比较少, 如果放在生产我们就可以看到了, 不会天天被被运维说我的数据链接有问题了

 

看一下我们最关心的sql吧:

 



 

噢  终于出来, 竟然和我 在 执行的是一致的O(∩_∩)O哈哈~ 配置正确,我们看到这里有方法执行时间, 和事物, 我这个方式是一个sevice , 所有的方法竟然都在事物中, 实际上只需要个在事物中即可, 费这么大劲,终于抓到元凶了, 没事干 弄那么多select 放事物做什么,还有就是有一个sql执行时间太长了,我么来分析一下:



 

     

 

如果方法执行太慢这个 sql 绝对是元凶! 要优化就从他入手吧!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 大小: 129 KB
  • 大小: 135.4 KB
  • 大小: 145.5 KB
  • 大小: 111.7 KB
分享到:
评论

相关推荐

    druid-1.2.8.rar

    《Druid连接池详解及其1.2.8版本特性》 Druid,全名Dynamic Routing Data Source,是由阿里巴巴开源的一款高效、强大的...持续的更新和维护,使得Druid始终保持着与时俱进的步伐,为开发者提供更好的数据库管理工具。

    druid连接池jar包

    Druid是阿里巴巴开源的一个高效、强大的Java数据库连接池组件,它在淘宝等大型互联网公司得到了广泛的应用。Druid连接池的设计目标不仅仅是提供一个数据库连接管理工具,而是成为一个数据库访问的优化框架,它集成了...

    Java微信小程序优惠券商城项目源码

    api_mall: 商城模块,整合淘宝、拼多多、唯品会、蘑菇街平台的SDK,抹除各个平台间的差异,提供了统一的API api_user:用户模块,包含的具体内容如下: 订单查询:包含自购订单、分享订单的查询。 账单查询:包含...

    java开源包8

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

    阿里26款Java开源项目(附源码).docx

    2. **Druid**:Druid是一个高效的JDBC连接池,同时也提供数据库监控、密码加密和SQL执行日志等功能,帮助企业提升数据库访问性能并确保安全。 3. **Fastjson**:Fastjson是Java语言的高性能JSON处理器,支持各种...

    阿里巴巴的10款开源项目.pdf

    14. **Macaroon**:Macaroon是一个高效的反向代理测试工具,使用Python2.7开发,适用于跨平台测试,方便构建和测试复杂场景。 15. **Uploader**:Uploader是一个全面的文件上传组件,支持多种上传方式,兼容各种...

    java开源包1

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

    java开源包11

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

    java开源包2

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

    java开源包3

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

    java开源包6

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

    java开源包5

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

    java开源包10

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

    java开源包4

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

    java开源包7

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

    java开源包9

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

    java开源包101

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

    Java资源包01

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

    企业中台后台权限SpringBoot2+Vue实战

    Druid 数据库连接池 【前端技术】Vue 互联网最火的前端框架Vue Router 路由框架Vuex 全局状态管理框架Axios 前端 HTTP 框架Element UI 前端 UI 框架Ant Design Pro Vue 前端模板Antv 蚂蚁金服可视化技术,阿里巴巴...

    SpringBoot2+Ant Design实战班

    Spring Security5 认证和授权框架MyBatisPlus3.3.1 基于 MyBatis 框架的快速研发框架MyBatisCode工具 生成 MyBatis 相关代码Jackson 提供了处理 JSON 数据的工具Lombok 简化对象封装工具 Druid 数据库...

Global site tag (gtag.js) - Google Analytics