文档章节

(阿里巴巴)数据库连接池——Druid (未完持续更新)

Mr_ET
 Mr_ET
发布于 2017/07/25 21:28
字数 1017
阅读 13
收藏 0
点赞 0
评论 0

  GitHub地址:https://github.com/leebingbin/  

    Java程序很大一部分要操作数据库,为了提高性能操作数据库的时候,有不得不使用数据库连接池。数据库连接池有很多选择,c3p、dhcp、proxool等,druid作为一名后起之秀,凭借其出色的性能,也逐渐引入了大家的眼帘。Druid是一个开源项目,源码托管在github上,源代码仓库地址是https://github.com/alibaba/druid 。同时每次Druid发布正式版本和快照的时候,都会把源码打包,大家可以从上面的下载地址中找到相关版本的源码。

  为什么说Druid是“最好的数据库连接池”?体现在哪些方面?这是如何实现的?

  阿里巴巴是一个重度使用关系数据库的公司,在生产环境中大量的使用Druid,通过长期在极高负载的生产环境中实际使用、修改和完善,让Druid逐步发展成最好的数据库连接池。Druid在监控、可扩展性、稳定性和性能方面都有明显的优势。首先,强大的监控特性,通过Druid提供的监控功能,可以清楚知道连接池和SQL的工作情况。其次,方便扩展。Druid提供了Filter-Chain模式的扩展API,可以自己编写Filter拦截JDBC中的任何方法,可以在上面做任何事情,比如说性能监控、SQL审计、用户名密码加密、日志等等。Druid内置提供了用于监控的StatFilter、日志输出的Log系列Filter、防御SQL注入攻击的WallFilter。阿里巴巴内部实现了用于数据库密码加密的CirceFilter,以及和Web、Spring关联监控的DragoonStatFilter。第三,Druid集合了开源和商业数据库连接池的优秀特性,并结合阿里巴巴大规模苛刻生产环境的使用经验进行优化。

  怎么配置maven( Maven仓库查找公共的仓库地址:http://www.mvnrepository.com/artifact/com.alibaba/druid

  只需要在项目的pom.xml中加上dependency就可以了。例如:

 <dependency>
         <groupId>com.alibaba</groupId>
         <artifactId>druid</artifactId>
         <version>${druid-version}</version>
 </dependency>

        配置_DruidDataSource参考配置:

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> 
       <!-- 基本属性 url、user、password -->
       <property name="url" value="${jdbc_url}" />
       <property name="username" value="${jdbc_user}" />
       <property name="password" value="${jdbc_password}" />
 
       <!-- 配置初始化大小、最小、最大 -->
       <property name="initialSize" value="1" />
       <property name="minIdle" value="1" /> 
       <property name="maxActive" value="20" />
 
       <!-- 配置获取连接等待超时的时间 -->
       <property name="maxWait" value="60000" />
 
       <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
       <property name="timeBetweenEvictionRunsMillis" value="60000" />
 
       <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
       <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" />
 
       <!-- 打开PSCache,并且指定每个连接上PSCache的大小 -->
       <property name="poolPreparedStatements" value="true" />
       <property name="maxPoolPreparedStatementPerConnectionSize" value="20" />
 
       <!-- 配置监控统计拦截的filters -->
       <property name="filters" value="stat" /> 
   </bean>

        使用(druid-1.0.25.jar)数据库连接加密操作流程

  1.进入到附件:druid-1.0.25.jar对应的路径。例如(windows):

  2.执行命令:java -cp druid-1.0.25.jar com.alibaba.druid.filter.config.ConfigTools 密码
    如下图所示

  3.使用标记即可复制出内容,需要注意:无论是公钥还是密码都只取publicKey:,password:后面的数据,且如果有换行去掉换行,公钥和密码每个都是独立的一行。
  4.把加密后的密码公钥配置到配置文件中即可。

GitHub地址:https://github.com/leebingbin/

© 著作权归作者所有

共有 人打赏支持
Mr_ET
粉丝 30
博文 89
码字总数 122971
作品 0
朝阳
高级程序员
阿里巴巴开源项目 Druid 负责人温少访谈

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

李永china ⋅ 2016/08/08 ⋅ 0

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

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

donkeyMeng ⋅ 2016/12/17 ⋅ 0

spring boot 1.5.4 整合 druid(十三)

上一篇:spring boot 1.5.4 整合 mybatis(十二) 1 集成druid连接池 spring boot集成druid项目mybatis-spring-boot源码: spring-boot相关项目源码, 码云地址:https://git.oschina.net/w...

wyait ⋅ 2017/09/29 ⋅ 0

【开源访谈】Druid 作者温绍锦访谈实录

关于开源访谈 开源访谈是开源中国推出的一系列针对国内优秀开源软件作者的访谈,以文字的方式记录并传播。我们希望开源访谈能全面的展现国内开源软件、开源软件作者的现状,着实推动国内开源...

虫虫 ⋅ 2012/08/22 ⋅ 29

web开发可选用优秀开源组件、框架

1:Druid :来自阿里巴巴的 JDBC连接池 监控组件Druid 详情可见:https://www.oschina.net/p/druid 2:fastjson:阿里巴巴公司开源的速度最快的Json和对象转换工具 吓一跳的结果:fastjson和...

wbx417 ⋅ 2016/11/05 ⋅ 0

MySQL的百万级性能测试——(一)环境搭建与百万级数据插入

MySQL——全球最流行的数据库(没有之一,就使用量而言)。 ——开源数据库。 ——与mongoDB不同,MySQL是一门关系型数据库。 此系列文章,作者本人将推演至个人毕业设计之中。所以在毕设前,...

志明丶 ⋅ 2017/11/16 ⋅ 0

Druid 0.2.16 发布,阿里巴巴开源数据库连接池

下载地址: http://code.alibabatech.com/mvn/releases/com/alibaba/druid/0.2.16/ Druid首先是一个数据库连接池。Druid是目前最好的数据库连接池,在功能、性能、扩展性方面,都超过其他数据...

Google ⋅ 2013/04/25 ⋅ 15

Druid 1.0.1 发布,阿里巴巴数据库连接池

Druid 1.0.1 发布,更新内容如下: bug修复: DRUID-305 Updated: 25/Nov/13 修复 DruidDataSource 中创建链异常空判断错误 改进: DRUID-306 Updated: 25/Nov/13 增强SQL注入拦截规则 Drui...

oschina ⋅ 2013/12/13 ⋅ 23

提取 Druid 的 SQL 解析器

认识 Druid Druid 是阿里巴巴公司开源的一个数据库连接池,它的口号是:为监控而生的数据库连接池 根据官方 wiki的介绍 Druid 是一个 JDBC 组件库,包括数据库连接池、SQL Parser 等组件,D...

beanlam ⋅ 2017/01/14 ⋅ 0

阿里巴巴新的开源项目——Druid (JDBC组件)

Druid是一个JDBC组件,它包括三部分: DruidDriver 代理Driver,能够提供基于Filter-Chain模式的插件体系。 DruidDataSource 高效可管理的数据库连接池。 SQLParser...

红薯 ⋅ 2011/05/12 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JVM堆的理解

在JVM中,我们经常提到的就是堆了,堆确实很重要,其实,除了堆之外,还有几个重要的模块,看下图: 大 多数情况下,我们并不需要关心JVM的底层,但是如果了解它的话,对于我们系统调优是非常...

不羁之后 ⋅ 昨天 ⋅ 0

推荐:并发情况下:Java HashMap 形成死循环的原因

在淘宝内网里看到同事发了贴说了一个CPU被100%的线上故障,并且这个事发生了很多次,原因是在Java语言在并发情况下使用HashMap造成Race Condition,从而导致死循环。这个事情我4、5年前也经历...

码代码的小司机 ⋅ 昨天 ⋅ 1

聊聊spring cloud gateway的RetryGatewayFilter

序 本文主要研究一下spring cloud gateway的RetryGatewayFilter GatewayAutoConfiguration spring-cloud-gateway-core-2.0.0.RC2-sources.jar!/org/springframework/cloud/gateway/config/G......

go4it ⋅ 昨天 ⋅ 0

创建新用户和授予MySQL中的权限教程

导读 MySQL是一个开源数据库管理软件,可帮助用户存储,组织和以后检索数据。 它有多种选项来授予特定用户在表和数据库中的细微的权限 - 本教程将简要介绍一些选项。 如何创建新用户 在MySQL...

问题终结者 ⋅ 昨天 ⋅ 0

android -------- 颜色的半透明效果配置

最近有朋友问我 Android 背景颜色的半透明效果配置,我网上看资料,总结了一下, 开发中也是常常遇到的,所以来写篇博客 常用的颜色值格式有: RGB ARGB RRGGBB AARRGGBB 这4种 透明度 透明度...

切切歆语 ⋅ 昨天 ⋅ 0

CentOS开机启动subversion

建立自启动脚本: vim /etc/init.d/subversion 输入如下内容: #!/bin/bash## subversion startup script for the server## chkconfig: 2345 90 10# description: start the subve......

随风而飘 ⋅ 昨天 ⋅ 0

Nginx + uwsgi @ubuntu

uwsgi 安装 sudo apt-get install python3-pip # 注意 ubuntu python3默认没有安装pippython3 -m pip install uwsgi 代码(test.py) def application(env, start_response): start_res......

袁祾 ⋅ 昨天 ⋅ 0

版本控制工具

CSV , SVN , GIT ,VSS

颖伙虫 ⋅ 昨天 ⋅ 0

【2018.06.19学习笔记】【linux高级知识 13.1-13.3】

13.1 设置更改root密码 13.2 连接mysql 13.3 mysql常用命令

lgsxp ⋅ 昨天 ⋅ 0

LVM

LVM: 硬盘划分分区成物理卷->物理卷组成卷组->卷组划分逻辑分区。 1.磁盘分区: fdisk /dev/sdb 划分几个主分区 输入t更改每个分区类型为8e(LVM) 使用partprobe生成分区的文件:如/dev/sd...

ZHENG-JY ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部