数据库连接池
概述
Druid首先是一个数据库连接池。Druid是目前最好的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C3P0、BoneCP、Proxool、JBoss DataSource。
适用范围
Pangea v2.0.1.6+
快速上手
1、添加依赖
Sentinel的starter依赖已经添加到了盘古common-core核心包中,使用时,引入common包即可。
html
<!--maven依赖包 -->
<!--阿里数据库连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${druid.version}</version>
</dependency>
2、使用方法(配置参数说明)
driverClassName 根据url自动识别 这一项可配可不配,如果不配置druid会根据url自动识别dbType,然后选择相应的driverClassName
url 连接数据库的url,不同数据库不一样
username 连接数据库的用户名
password 连接数据库的密码。如果你不希望密码直接写在配置文件中,可以使用ConfigFilter
initialSize 初始化时建立物理连接的个数。初始化发生在显示调用init方法,或者第一次getConnection时
minIdle 最小连接池数量
maxActive 最大连接池数量
maxWait 获取连接时最大等待时间,单位毫秒。配置了maxWait之后,缺省启用公平锁,并发效率会有所下降,
如果需要可以通过配置useUnfairLock属性为true使用非公平锁。
timeBetweenEvictionRunsMillis 1) Destroy线程会检测连接的间隔时间
2) testWhileIdle的判断依据,详细看testWhileIdle属性的说明
validationQuery: 用来检测连接是否有效的sql,要求是一个查询语句
testWhileIdle: 建议配置为true,不影响性能,并且保证安全性。
testOnBorrow: 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能
testOnReturn: 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能
filters: 属性类型是字符串,通过别名的方式配置扩展插件
maxEvictableIdleTimeMillis: 1000000
slave:enabled 是否使用集群
3、常用配置
sql
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: oracle.jdbc.OracleDriver
url: jdbc:oracle:thin:@${ORACLE_HOST:*******}:1521:${ORACLE_PID:*******}
username: ${ORACLE_NAME:*******}
password: ${ORACLE_PASSWORD:*******}
druid:
initialSize: 10
minIdle: 5
maxActive: 15
maxWait: 60000
timeBetweenEvictionRunsMillis: 60000
removeAbandoned: true
removeAbandonedTimeout: 180
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 50
filters: stat
maxEvictableIdleTimeMillis: 1000000
slave:
enabled: false