文档章节

Druid使用配置初步理解

chenhuaming
 chenhuaming
发布于 2016/10/08 15:09
字数 882
阅读 198
收藏 2
点赞 0
评论 0

Druid是什么?

Druid首先是一个数据库连接池。Druid是目前最好的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C3P0、BoneCP、Proxool、JBoss DataSource。

Druid已经在阿里巴巴部署了超过600个应用,经过一年多生产环境大规模部署的严苛考验。

同时Druid不仅仅是一个数据库连接池,它包括四个部分:
Druid是一个JDBC组件,它包括三个部分:

Druid可以做什么?

  • 替换DBCP和C3P0。Druid提供了一个高效、功能强大、可扩展性好的数据库连接池。
  • 可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,能够详细统计SQL的执行性能,这对于线上分析数据库访问性能有帮助。
  • 数据库密码加密。直接把数据库密码写在配置文件中,这是不好的行为,容易导致安全问题。DruidDruiver和DruidDataSource都支持PasswordCallback。
  • SQL执行日志,Druid提供了不同的LogFilter,能够支持Common-Logging、Log4j和JdkLog,你可以按需要选择相应的LogFilter,监控你应用的数据库访问情况。
  • 扩展JDBC,如果你要对JDBC层有编程的需求,可以通过Druid提供的Filter机制,很方便编写JDBC层的扩展插件。

在项目中使用Druid非常简单,只要修改下配置文件就可以了

 

当我们在javaWEB项目中使用到druid来作为我们的连接池的时候,一定不会忘了添加监控功能。

首先是过滤器filter的配置,在web.xml中添加如下配置

 

<filter>
    <filter-name>DruidWebStatFilter</filter-name>
    <filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class>
    <init-param>
        <param-name>exclusions</param-name>
        <param-value>*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>DruidWebStatFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

过滤器中的配置,是用来定义我们的监控选项,在以上的监控配置中,我们定义了一个简单的监控,并采用了大量的默认配置,如果你想使用更丰富的监控配置,可以在druid的github wiki上获取更多的选项,地址:druid Filter 配置

选项配置结束之后,就是我们监控界面的路径配置了,servlet配置我们将在哪里打开我们的监控页面,在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>

以上配置中,我们将我们的网页监控路径放在了,项目路径下的 druid路径中,类似于 www.myroject.com/druid.

同样的,上面的配置只是一个简单的配置,更丰富的选项,需要您移步:druid servlet 配置

至此,一个简单的web项目就配好了监控的页面,但是大多数人在开发javaWEB项目中时都避免不了使用到各种框架和其他的技术,我将在后面的博文中陆续写出相应的配置方式。

spring配置

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">  

      <property name="url" value="${jdbc.url}" />  

      <property name="username" value="${jdbc.username}" />  

     <property name="password" value="${jdbc.password}" />  

     <property name="filters" value="stat" />  

     <property name="maxActive" value="20" />   

     <property name="initialSize" value="1" />  

      <property name="maxWait" value="60000" />  

 <property name="minIdle" value="1" /> 

 <property name="timeBetweenEvictionRunsMillis" value="3000" />  

<property name="minEvictableIdleTimeMillis" value="300000" /> 

 <property name="validationQuery" value="SELECT 'x'" />  

<property name="testWhileIdle" value="true" />  

<property name="testOnBorrow" value="false" />  

<property name="testOnReturn" value="false" />  

<property name="poolPreparedStatements" value="true" /> 

 <property name="maxPoolPreparedStatementPerConnectionSize" value="20" /> 

</bean>   

 


就可以了.
监控页面

© 著作权归作者所有

共有 人打赏支持
chenhuaming
粉丝 1
博文 12
码字总数 6788
作品 0
广州
程序员
druid不支持OSGI

@wenshao 你好,想跟你请教个问题: druid怎么不支持一下OSGI? 我是在OSGI运行环境下使用druid的,虽然有工具可以对jar包进行转换,初步验证也能连接db查询数据,但由于druid 依赖的jconsol...

小珂 ⋅ 2016/03/04 ⋅ 4

聊聊Druid(一)-- 配置与初始化

这里以我们常用在spring环境中集成druid的方式进行说明。 spring中的druid配置参考: 通常来说,只需要修改initialSize、minIdle、maxActive。 如果用Oracle,则把poolPreparedStatements配置...

evexu ⋅ 03/02 ⋅ 0

基于Maven的Springboot+Mybatis+Druid+Swagger2+mybatis-generator框架环境搭建

前言 最近做回后台开发,重新抓起以前学过的SSM(Spring+Spring MVC+Mybatis),但是发现配置实在过于复杂,好多东西配置起来麻烦,虽然最终是配置出来了,但是还是感觉开发速度跟不上,本来打...

易达 ⋅ 2016/10/15 ⋅ 0

阿里巴巴开源项目 Druid 负责人温少访谈

Druid是阿里巴巴开源平台上的一个项目,整个项目由数据库连接池、插件框架和SQL解析器组成。该项目主要是为了扩展JDBC的一些限制,可以让程序员实现一些特殊的需求,比如向密钥服务请求凭证、...

donkeyMeng ⋅ 2016/12/17 ⋅ 0

阿里巴巴开源项目 Druid 负责人温少访谈

挡住去路的,往往不是大树,而是小藤! 阿里巴巴开源项目 Druid 负责人温少访谈 本文是由转载而来. Druid是阿里巴巴开源平台上的一个项目,整个项目由数据库连接池、插件框架和 SQL解析 器组...

李永china ⋅ 2016/08/08 ⋅ 0

DBeaver链接Oracle数据库中文显示乱码

背景 DBeaver是一款不错的开源数据库客户端http://www.oschina.net/p/dbeaver,基本的增删改查足够用了。但在链接Oracle时,由于字符编码问题,容易产生乱码,现可以使用Druid来解决这个问题...

joshuazhan ⋅ 2013/04/13 ⋅ 0

使用Druid监控SQL执行状态

本文使用Druid的连接池替换掉原来的C3P0连接池,然后配置Druid的相关属性,完成对Spring web工程的JDBC监控。 其实,我采用Druid替换其它连接池,最关键的一个理由是Druid有对SQL执行的监控统...

王孟君 ⋅ 2016/11/15 ⋅ 8

Spring Boot 使用 Druid 和监控配置

Druid是Java语言中最好的数据库连接池,并且能够提供强大的监控和扩展功能。 业界把 Druid 和 HikariCP 做对比后,虽说 HikariCP 的性能比 Druid 高,但是因为 Druid 包括很多维度的统计和分...

阿丢丢 ⋅ 2016/12/19 ⋅ 8

Druid使用起步—在javaWeb项目中配置监控

当我们在javaWEB项目中使用到druid来作为我们的连接池的时候,一定不会忘了添加监控功能。下面我们就来看一下,在一个简单的web项目中(尚未使用任何框架)我们是如果来配置我们的web.xml来完成...

明月照大江 ⋅ 2013/08/15 ⋅ 4

druid.io 使用hdfs作为deep storage 不能保存

前提: ---a、首先需要你自己搭建一个hadoop集群,该集群自带hdfs功能。 ---b、第二点在你的druid的集群每一台机器配置hadoop-client。并且需要修改conf,可以直接将hadoop集群的conf目录拷贝...

一只小江 ⋅ 2016/03/23 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Jenkins实践3 之脚本

#!/bin/sh# export PROJ_PATH=项目路径# export TOMCAT_PATH=tomcat路径killTomcat(){pid=`ps -ef | grep tomcat | grep java|awk '{print $2}'`echo "tom...

晨猫 ⋅ 今天 ⋅ 0

Spring Bean的生命周期

前言 Spring Bean 的生命周期在整个 Spring 中占有很重要的位置,掌握这些可以加深对 Spring 的理解。 首先看下生命周期图: 再谈生命周期之前有一点需要先明确: Spring 只帮我们管理单例模...

素雷 ⋅ 今天 ⋅ 0

zblog2.3版本的asp系统是否可以超越卢松松博客的流量[图]

最近访问zblog官网,发现zlbog-asp2.3版本已经进入测试阶段了,虽然正式版还没有发布,想必也不久了。那么作为aps纵横江湖十多年的今天,blog2.2版本应该已经成熟了,为什么还要发布这个2.3...

原创小博客 ⋅ 今天 ⋅ 0

聊聊spring cloud的HystrixCircuitBreakerConfiguration

序 本文主要研究一下spring cloud的HystrixCircuitBreakerConfiguration HystrixCircuitBreakerConfiguration spring-cloud-netflix-core-2.0.0.RELEASE-sources.jar!/org/springframework/......

go4it ⋅ 今天 ⋅ 0

二分查找

二分查找,也称折半查找、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于...

人觉非常君 ⋅ 今天 ⋅ 0

VS中使用X64汇编

需要注意的是,在X86项目中,可以使用__asm{}来嵌入汇编代码,但是在X64项目中,再也不能使用__asm{}来编写嵌入式汇编程序了,必须使用专门的.asm汇编文件来编写相应的汇编代码,然后在其它地...

simpower ⋅ 今天 ⋅ 0

ThreadPoolExecutor

ThreadPoolExecutor public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, ......

4rnold ⋅ 昨天 ⋅ 0

Java正无穷大、负无穷大以及NaN

问题来源:用Java代码写了一个计算公式,包含除法和对数和取反,在页面上出现了-infinity,不知道这是什么问题,网上找答案才明白意思是负的无穷大。 思考:为什么会出现这种情况呢?这是哪里...

young_chen ⋅ 昨天 ⋅ 0

前台对中文编码,后台解码

前台:encodeURI(sbzt) 后台:String param = URLDecoder.decode(sbzt,"UTF-8");

west_coast ⋅ 昨天 ⋅ 0

实验楼—MySQL基础课程-挑战3实验报告

按照文档要求创建数据库 sudo sercice mysql startwget http://labfile.oss.aliyuncs.com/courses/9/createdb2.sqlvim /home/shiyanlou/createdb2.sql#查看下数据库代码 代码创建了grade......

zhangjin7 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部