DRUID介绍

DRUID是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0、DBCP、PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生的DB连接池(据说是目前最好的连接池,不知道速度有没有BoneCP快)。

配置参数

和其它连接池一样DRUID的DataSource类为:com.alibaba.druid.pool.DruidDataSource,基本配置参数如下:

配置

缺省值

说明

name

配置这个属性的意义在于,如果存在多个数据源,监控的时候可以通过名字来区分开来。

如果没有配置,将会生成一个名字,格式是:"DataSource-" + System.identityHashCode(this)

jdbcUrl

连接数据库的url,不同数据库不一样。例如:

mysql : jdbc:mysql://10.20.153.104:3306/druid2

oracle : jdbc:oracle:thin:@10.20.149.85:1521:ocnauto

username

连接数据库的用户名

password

连接数据库的密码。如果你不希望密码直接写在配置文件中,可以使用ConfigFilter。详细看这里:https://github.com/alibaba/druid/wiki/%E4%BD%BF%E7%94%A8ConfigFilter

driverClassName

根据url自动识别

这一项可配可不配,如果不配置druid会根据url自动识别dbType,然后选择相应的driverClassName(建议配置下)

initialSize

0

初始化时建立物理连接的个数。初始化发生在显示调用init方法,或者第一次getConnection时

maxActive

8

最大连接池数量

maxIdle

8

已经不再使用,配置了也没效果

minIdle

最小连接池数量

maxWait

获取连接时最大等待时间,单位毫秒。配置了maxWait之后,缺省启用公平锁,并发效率会有所下降,如果需要可以通过配置useUnfairLock属性为true使用非公平锁。

poolPreparedStatements

false

是否缓存preparedStatement,也就是PSCache。PSCache对支持游标的数据库性能提升巨大,比如说oracle。在mysql下建议关闭。

maxOpenPreparedStatements

-1

要启用PSCache,必须配置大于0,当大于0时,poolPreparedStatements自动触发修改为true。在Druid中,不会存在Oracle下PSCache占用内存过多的问题,可以把这个数值配置大一些,比如说100

validationQuery

用来检测连接是否有效的sql,要求是一个查询语句。如果validationQuery为null,testOnBorrow、testOnReturn、testWhileIdle都不会其作用。

testOnBorrow

true

申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。

testOnReturn

false

归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能

testWhileIdle

false

建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。

timeBetweenEvictionRunsMillis

有两个含义:

1) Destroy线程会检测连接的间隔时间2) testWhileIdle的判断依据,详细看testWhileIdle属性的说明

numTestsPerEvictionRun

不再使用,一个DruidDataSource只支持一个EvictionRun

minEvictableIdleTimeMillis

connectionInitSqls

物理连接初始化的时候执行的sql

exceptionSorter

根据dbType自动识别

当数据库抛出一些不可恢复的异常时,抛弃连接

filters

属性类型是字符串,通过别名的方式配置扩展插件,常用的插件有:

监控统计用的filter:stat日志用的filter:log4j防御sql注入的filter:wall

proxyFilters

类型是List,如果同时配置了filters和proxyFilters,是组合关系,并非替换关系

使用方法

DB数据源的使用方法也就是2种,一种是在代码中写死通过NEW操作符创建DataSSource,然后set一些连接属性,这里不在累述;另外一种是基于SPRING的配置方法,然后让SPRING的Context自动加载配置(以下配置文件默认都在项目根目录下conf文件夹中)

1、属性文件:application.properties(DataSource连接参数)

jdbc.driverClassName=com.mysql.jdbc.Driver

jdbc.url=jdbc:mysql://127.0.0.1:3306/test

jdbc.username=root

jdbc.password=1qaz!QAZ

2、SPRING配置文件:spring-base.xml

class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

./conf/application.properties

init-method="init" destroy-method="close">

value="20" />

上面红色标注部分为监控DB池连接执行监控,后面在做详细说明.

监控方式

1、WEB方式监控配置

DruidStatView

com.alibaba.druid.support.http.StatViewServlet

DruidStatView

/druid/*

druidWebStatFilter

com.alibaba.druid.support.http.WebStatFilter

exclusions

/public/*,*.js,*.css,/druid*,*.jsp,*.swf

principalSessionName

sessionInfo

profileEnable

true

druidWebStatFilter

/*

把上面servlet配置添加到项目web.xml即可。然后运行Tomcat,浏览器输入 http://IP:PROT/druid

就可以打开Druid的监控页面了.

2、日志文件监控

Druid提供了多种日志文件监控 commons-logging、log4j等,这里我们主要使用slf4j和logback来进行日志监控配置。

首先要引入slf4j和logback相关的jar文件(从Maven公共仓库下载 http://search.maven.org/)

1.7.7

1.1.2

org.slf4j

slf4j-api

${slf4j.version}

ch.qos.logback

logback-access

${logback.version}

ch.qos.logback

logback-core

${logback.version}

ch.qos.logback

logback-classic

${logback.version}

接下配置logback的配置文件(./conf/logback.xml)

%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n

./logs/druid_info.log

%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n

debug

最后就是写一个测试类进行测试

public class TestMain {

public static void loadLoggerContext() {

System.getProperties().put("logback.configurationFile", "./conf/logback.xml");

LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();

StatusPrinter.setPrintStream(System.err);

StatusPrinter.print(lc);

}

public static void main(String[] args) {

try {

loadLoggerContext();

FileSystemXmlApplicationContext context = new FileSystemXmlApplicationContext("./conf/spring-base.xml");

} catch (Exception e) {

System.out.println(e);

}

}

}

druid 连接db2_DRUID连接池的实用 配置详解相关推荐

  1. Druid 连接池的实用 配置详解

    Druid连接池参数配置详解 druid为阿里巴巴的数据源,(数据库连接池),集合了c3p0.dbcp.proxool等连接池的优点,还加入了日志监控,有效的监控DB池连接和SQL的执行情况. DRU ...

  2. Druid连接池的实用配置详解

    DRUID介绍 DRUID是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0.DBCP.PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针 ...

  3. DRUID连接池的实用 配置详解

    https://www.cnblogs.com/wuyun-blog/p/5679073.html https://blog.csdn.net/hj7jay/article/details/51686 ...

  4. uniapp微信小程序系列(2)pages.json实用配置详解

    本篇主要介绍其中几个实用的配置: 1. 配置应用级别样式.tabBar样式 2. 配置前端页面路由.分包路由 3. 配置easycom全局组件(组件无需import引入直接使用) 一. 配置应用级别样 ...

  5. DRUID 连接池的使用、配置详解

    DRUID 连接池的使用.配置详解 本篇参考:原文链接 一.DRUID 介绍: DRUID 是阿里巴巴开源平台上一个数据库连接池实现,它结合了 C3P0.DBCP.PROXOOL等DB池的优点,同时加 ...

  6. Spring Boot 使用 HikariCP 连接池配置详解

    Spring Boot 使用 HikariCP 连接池配置详解 HikariCP 是一个高性能的 JDBC 连接池组件. Spring Boot 2.x 将其作为默认的连接池组件,项目中添加 spri ...

  7. Hikari连接池配置详解

    Hikari连接池配置详解 ## 数据库配置 spring.datasource.type=com.zaxxer.hikari.HikariDataSource spring.datasource.d ...

  8. [转]阿里巴巴数据库连接池 druid配置详解

    一.背景 java程序很大一部分要操作数据库,为了提高性能操作数据库的时候,又不得不使用数据库连接池.数据库连接池有很多选择,c3p.dhcp.proxool等,druid作为一名后起之秀,凭借其出色 ...

  9. oracle通过dblink连接mysql配置详解(全Windows下)

    oracle通过dblink连接mysql配置详解(全Windows下) 关于oracle通过dblink连接mysql,经过了两周的空闲时间研究学习,终于配置好了,真是不容易啊,仔细想想的话,其实也 ...

最新文章

  1. nagios mysql php_nagios监控mysql
  2. android 自定义分区,android 自定义预制APP分区
  3. python3 -c 和 python3 -m
  4. google protobuf安装与使用
  5. python求阶乘之和_python计算阶乘前n项和
  6. 【360开源】2018开源项目汇总
  7. jquery对标签属性操作
  8. [深入Maven源代码]maven绑定命令行参数到具体插件
  9. 网络安全与渗透测试工具导航
  10. win7下IDEA黑色主题看不到鼠标指针的修改方式
  11. 企业网络安全 8 条实用参考
  12. 以预测股票涨跌案例入门基于SVM的机器学习
  13. ctfshow 网络迷踪-来点福利
  14. SAP 采购信息记录
  15. Entry name ‘META-INF/androidx.vectordrawable_vectordrawable.version‘ collided
  16. hazelcast java_Hazelcast入门教程
  17. 网络信息手机:web scrapper数据获取 、数据采集器、公众号信息收集
  18. 庖丁解牛式读《Attention is all your need》
  19. 小学校本培简讯 计算机技术,【图】以爱育心,并肩同行——赤岗小学2014学年第一学期班主任校本培训简讯_海珠_广州教育信息网...
  20. 多台ubuntu电脑实现时间同步

热门文章

  1. []AT 指令 收发短信和GPRS上网 SIM508/548
  2. 迅雷自动生成的vod_cache_data处理方法
  3. flash特效原理:图片滑动放大效果
  4. kkkkkkkkkkkk
  5. 无盘网吧服务器能带30台机吗,30台机无盘网吧的配置方案
  6. 计算机集成制造系统C MS论文,浅谈自动化机械制造及发展毕业论文.docx
  7. 福州物联网开放实验室下月挂牌
  8. 过年了,用Python做个抢红包神器,看谁抢得过我
  9. 评测 i5 13600kf和r7 5800x3D差距 酷睿i513600kf和锐龙r7 5800x3D选哪个好
  10. 深度学习深度前馈网络_深度学习前馈网络中的讲义第4部分