`

连接池 druid DruidDataSource 配置

阅读更多
 
 
注:
  • 属性跟 dbcp 连接池的差不多.
  • 加入了 filters 监控(value 值要有 stat)   在web.xml里加入下面的Servlet  就可查看  例: http://localhost:8080/BenbearGame_test/druid
  • 跟spring 一起用时( 只要配置  initialSize      maxActive   就可以),加入其实配置性能不好,官方文档里也不没加其它属性
 
<!-- 数据源 org.apache.commons.dbcp.BasicDataSource com.alibaba.druid.pool.DruidDataSource -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost/mybatis" />
<property name="username" value="root" />
<property name="password" value="admin" />


<!-- druid 连接池的 -->
<property name="filters" value="stat" />

<!-- 下面druid 和 dbcp 连接池通用的 ↓↓↓↓↓↓↓↓↓↓↓↓ -->
<!--maxActive: 最大连接数量 -->
<property name="maxActive" value="20" />
<!--initialSize: 初始化连接 -->
<property name="initialSize" value="5" />

</bean> 
 
 
filters 监控 Servlet
<servlet>
<servlet-name>DruidStatView<rvlet-name>
<servlet-class>com.alibaba.druid.support.http.StatViewServlet<rvlet-class>
<rvlet>
<servlet-mapping>
<servlet-name>DruidStatView<rvlet-name>
<url-pattern>/druid/*</url-pattern>
<rvlet-mapping> 
 
 
 
 

ExecuteCount

当前sql已执行次数

 

ExecTime

当前sql已执行时间

 

ExecMax

当前sql最大执行时间

 

Txn

当前运行的事务数量

 

Error

当前sql执行出错的数目

 

Update

当前sql更新或者删除操作中已经影响的行数

 

FetchRow

当前sql操作中已经读取的行数

 

Running

当前sql正在运行的数目

 

Concurrent

当前sql最大并发执行数 

 

ExecHisto 

当前sql做execute操作的时间分布数组

分为0-1,1-10,10-100,100-1000,>1000,5个时间分布区域,单位为ms

ExecRsHisto 

当前sql做execute操作和resultSet

打开至关闭的时间总和分布数组

同上

FetchRowHisto

当前sql查询时间分布数组

同上

UpdateHisto 

当前sql更新、删除时间分布数组

同上

 
 
配置 缺省值 说明
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<com.alibaba.druid.filter.Filter>,如果同时配置了filters和proxyFilters,是组合关系,并非替换关系
 
连接池 druid(阿里巴巴的框架) - BenBear - HongWei_BenBear 的博客
分享到:
评论

相关推荐

    Druid简单高性能MySQL连接池

    6. 关闭连接池:在应用程序关闭时,调用`DruidDataSource`的`close()`方法关闭连接池。 总结来说,Druid是一款强大的数据库连接池组件,它以其高性能、监控完善和易扩展性深受Java开发者喜爱。在实际应用中,通过...

    使用Druid数据连接池连接PostgreSQL简单例子

    在这个过程中,Druid会根据配置自动初始化并管理连接池,当应用程序需要连接时,可以从池中获取;使用完毕后,连接会被返回到池中,以便后续使用。这种管理模式既提高了程序运行效率,也降低了数据库的压力。 通过...

    数据库连接池druid-1.1.21.jar 和 配置文件druid.properties

    本主题将深入探讨数据库连接池Druid以及它的1.1.21版本,同时也会涉及如何配置其核心组件——`druid.properties`文件。 Druid是一个流行的Java数据库连接池实现,由阿里巴巴开发并开源。它不仅提供了数据库连接池的...

    tomcat连接池与阿里Druid连接池

    Tomcat 连接池和阿里 Druid 连接池的配置和比较 Tomcat 连接池是一种基于 Java 的数据库连接池实现,提供了高效、可靠的数据库连接管理。阿里 Druid 连接池是阿里巴巴开发的开源连接池,提供了高性能、可靠的数据库...

    java数据库连接池Druid

    &lt;bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"&gt; &lt;!-- 其他配置 --&gt; ``` 4. **Druid的监控与日志** - **监控**: 可通过添加`...

    配置Druid连接池需要的jar包-druid-1.0.15.jar

    如果使用的是Spring框架,那么在`DruidDataSource`的配置中添加`init-method="init"`,Spring会自动调用`init`方法初始化连接池。如果使用其他方式,需要手动调用`DruidDataSource`的`init()`方法。 6. **整合...

    最新版druid 数据库连接池 druid-1.1.21.jar

    Druid是阿里巴巴开源的一个高效、强大的数据库连接池组件,它的全称是Dynamic Routing Data Source,即动态路由数据源。在Java Web开发中,数据库连接池扮演着至关重要的角色,它负责管理数据库连接,提高数据库操作...

    druid连接池

    在源代码中,我们可以看到Druid的实现细节,例如`com.alibaba.druid.pool.DruidDataSource`是Druid连接池的主要类,它实现了`javax.sql.DataSource`接口,提供了创建、管理数据库连接的方法。`DruidDataSource`类...

    阿里巴巴数据库连接池druid及其源码

    **阿里巴巴数据库连接池Druid详解** Druid是阿里巴巴开源的一款高效、强大且可扩展的数据库连接池组件。作为Java世界中的优秀数据源管理工具,它不仅提供了基础的数据库连接池功能,还内置了丰富的监控和扩展特性,...

    druid数据库连接池详细属性配置

    **Druid数据库连接池详细属性配置** Druid是阿里巴巴开源的一款高效、强大的数据库连接池组件,它在性能、监控和扩展性方面表现出色。Druid不仅是一个连接池,还包含了SQL解析器、日志监控、SQL执行效率分析等功能...

    阿里Druid连接池示例(Servlet)

    在这个示例中,我们将探讨如何在Servlet环境下配置和使用Druid连接池。 1. **Druid连接池的优势** - 性能优秀:Druid连接池在性能上优于其他同类产品,如C3P0和DBCP。 - 监控能力:内置了WebStatFilter和...

    mysql驱动数据库连接池 druid jar

    MySQL驱动数据库连接池Druid是Java开发中常用的数据源管理工具,它由阿里巴巴开源并维护。在Java应用程序中,特别是Web应用服务器上,数据库连接池是必不可少的组件,用于优化数据库资源的使用,提高系统性能。本文...

    spring+druid+AtomikosDataSource实现多数据源切换及分布式事务控制

    Druid是一个优秀的数据库连接池组件,而AtomikosDataSource则是处理分布式事务的重要工具。下面我们将详细探讨如何利用Spring、Druid和AtomikosDataSource来实现这些功能。 1. **Spring框架与数据源** Spring提供...

    DRUID连接池的实用 配置详解

    DRUID的`DataSource`类位于`com.alibaba.druid.pool.DruidDataSource`包中,以下是一些重要的基本配置参数: ##### name **默认值:** 自动生成,格式为:"DataSource-"+`System.identityHashCode(this)` **说明:*...

    Druid数据库连接池及内置监控的配置和使用.zip

    这些信息通常写在` DruidDataSource `类的实例化代码或配置文件中。 - **初始化参数**:如最大连接数、最小连接数、初始化连接数等,用于控制连接池的大小和行为。 - **连接属性**:超时时间、自动提交状态、事务...

    数据库阿里连接池 druid配置详解

    numTestsPerEvictionRun 配置项已经不再使用,一个 DruidDataSource 只支持一个 EvictionRun。 minEvictableIdleTimeMillis 配置项 minEvictableIdleTimeMillis 配置项用于指定连接池中连接的最小空闲时间。 ...

    SpringBoot+MyBatis+Druid连接池+JDBC官方驱动+ClickHouse

    4. 集成MyBatis:配置MyBatis的mapper扫描路径,以及SqlSessionFactory的bean,这里可以使用DruidDataSource作为数据源。 5. 编写Mapper接口和XML文件:定义SQL查询和操作的方法,MyBatis会根据XML文件中的SQL语句...

    阿里Druid连接池技术需要的jar包

    2. **配置Druid**: 在Spring Boot项目中,可以在application.properties或application.yml文件中配置Druid连接池的相关属性,例如: ```properties spring.datasource.type=...

    阿里druid连接池1.1.21版本(支持达梦数据库)

    基于阿里的druid连接池,自己把对国产数据库达梦的支持加上去了,支持了wall方式,暂时没发现什么问题 :) 使用方式同原版

Global site tag (gtag.js) - Google Analytics