Druid连接池介绍及使用

Druid连接池介绍及使用

  • Druid的简介

Druid是Java语言中最好的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C3P0、Proxool、JBoss DataSource。Druid已经在阿里巴巴部署了超过600个应用,经过生产环境大规模部署的严苛考验。

Druid连接池为监控而生,内置强大的监控功能,监控特性不影响整体性能。功能强大,能防SQL注入,内置Loging能诊断Hack应用行为

  • 哪里下载druid

maven中央仓库: http://central.maven.org/maven2/com/alibaba/druid/ 

  • Github上Druid常见问题

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

  • Druid是一个JDBC组件,包括三个部分

基于Filter-Chain模式的插件体系。

DruidDataSource 高效可管理的数据库连接池。

SQLParser

  • 支持哪些数据库

数据库

支持状态

mysql

支持,大规模使用

oracle

支持,大规模使用

sqlserver

支持

postgres

支持

db2

支持

h2

支持

derby

支持

sqlite

支持

sybase

支持

  • 竞品对比

功能类别

功能

Druid

DBCP

Tomcat-jdbc

C3P0

性能

PSCache

LRU

SLB负载均衡支持

稳定性

ExceptionSorter

扩展

扩展

Filter

 

JdbcIntercepter

 

监控

监控方式

jmx/log/http

jmx

jmx

jmx

支持SQL级监控

Spring/Web关联监控

 

诊断支持

LogFilter

连接泄露诊断

logAbandoned

安全

SQL防注入

支持配置加密

 LRU 是一个性能关键指标,特别Oracle,每个Connection对应数据库端的一个进程,如果数据库连接池遵从LRU,有助于数据库服务器优化,这是重要的指标。在测试中,Druid、DBCP、Proxool是遵守LRU的。BoneCP、C3P0则不是。

 

PSCache是数据库连接池的关键指标。在Oracle中,类似SELECT NAME FROM USER WHERE ID = ?这样的SQL,启用PSCache和不启用PSCache的性能可能是相差一个数量级的。Proxool是不支持PSCache的数据库连接池,如果你使用Oracle、SQL Server、DB2、Sybase这样支持游标的数据库,那你就完全不用考虑Proxool

 

Oracle 10系列的Driver,如果开启PSCache,会占用大量的内存,必须做特别的处理,启用内部的EnterImplicitCache等方法优化才能够减少内存的占用。这个功能只有DruidDataSource有。如果你使用的是Oracle Jdbc,你应该毫不犹豫采用DruidDataSource

 

ExceptionSorter是一个很重要的容错特性,如果一个连接产生了一个不可恢复的错误,必须立刻从连接池中去掉,否则会连续产生大量错误。这个特性,目前只有JBossDataSource和Druid实现。Druid的实现参考自JBossDataSource,经过长期生产反馈补充

 

  • Druid使用
  1. Maven引入
com.alibabadruid1.1.9
  1. Druid结合spring配置
  1. 数据库密码加密

进入jar包所在目录

 

java -cp  druid-1.1.9.jar com.alibaba.druid.filter.config.ConfigTools XXXXX
web.jdbc.url=jdbc:mysql://XXXX:3306/XXX?useOldAliasMetadataBehavior=true&autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=trueweb.jdbc.username=用户名web.jdbc.password=passwordweb.jdbc.publickey=publicKey

 

若需要使用原始密码
注释connectionProperties 属性即可

  1. 慢SQL记录提醒
  1. SQL防御防火墙

待研究

  1. 开启web监控
DruidWebStatFiltercom.alibaba.druid.support.http.WebStatFilterexclusions*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*profileEnabletrue
DruidWebStatFilter/*DruidStatViewcom.alibaba.druid.support.http.StatViewServletDruidStatView/druid/*

 

  1. 开启spring类监控
com.jf.uhrunit.service.*com.jf.uhrunit.queryhelper.*

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部