druid连接池探活等参数

文章详细介绍了Java中Druid数据库连接池的配置参数,包括初始连接数、最小和最大空闲连接、最大活动连接、等待时间以及连接测试和生命周期管理。强调了新的探活机制`keep-alive`的重要性,并提供了推荐的配置示例。
摘要由CSDN通过智能技术生成

目录

引言

参数说明

1、基本配置

2、连接生命周期

3、连接测试,探活

总结

参考


引言

druid是java常用的数据库连接池,如果基础网络环境和数据库端设置了空闲连接释放,特别是探活探测需要正常配置,否则会导致应用下次从连接池中拿到异常连接而报错失败:

com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure

注:

参数是在以下环境测试验证:

jdk 8

druid 1.2.11

参数说明

1、基本配置

initial-size

Default: 0

初始化连接

min-idle

Default: 0

最小空闲连接

max-active

Default: 8

最大活动连接

max-wait

Default: -1

单位毫秒,获取连接时最大等待时间

2、连接生命周期

min-evictable-idle-time-millis

Default: 1800000(半个小时)

单位毫秒,只对应用刚启动,初始化的第一轮超过min-idle以外的空闲连接最大生命周期

min-evictable-idle-time-millis必须大于等于120秒,

min-evictable-idle-time-millis必须小于max-evictable-idle-time-millis

max-evictable-idle-time-millis

Default: 25200000(7个小时)

单位毫秒,空闲连接最长生命周期,超过max-evictable-idle-time-millis后重新生成的连接,包括

  1. 第一轮连接生命周期
  2. 使用过程中的连接生命周期
  3. 超过min-idle的空闲连接需要释放也是该参数控制

3、连接测试,探活

【新探活】

keep-alive

Default: false

在1.0.28版本之后,新加入keepAlive配置,缺省关闭。使用keepAlive功能,建议使用1.1.16或者更高版本。探活使用的是select 1操作

time-between-eviction-runs-millis

Default: 60000(1分钟)

探活周期,应用刚启动第一轮连接,或刚执行完应用请求的连接,会先需要超过120秒后才会触发探活

【旧探活】

validation-query-timeout=1

validation-query=select 1

test-on-borrow=false

test-on-return=false

test-while-idle=true

time-between-eviction-runs-millis=10000

在druid中已经不生效,使用keepAlive代替。

官网文档显示在1.0.27之前版本,是建议使用TestWhileIdle来保证连接的有效性

版本依赖修改为1.0.26

但是显示找不到,可能该方式已经被抛弃,或者理解有误

总结

#initial-size=7     #不建议配置,只在第一轮探活生效

min-idle=5          #最小连接数,因业务而定

max-active=10       #最小连接数,因业务而定

max-wait=10000      #获取连接等待时间,因业务而定

time-between-eviction-runs-millis=80000          #必须配置,配置80s,最终探活周期=80s+120s

keep-alive=true                 #必须配置

min-evictable-idle-time-millis=120000           #可以配置,只对第一轮配置了initial-size>min-idle的连接生效

max-evictable-idle-time-millis=1800000         #连接最大生命周期,默认7个小时

#validation-query-timeout=1

#validation-query=select 1

#test-on-borrow=false        #不建议配置,影响性能

#test-on-return=false        #不建议配置,影响性能

#test-while-idle=true        #不建议配置,已经有keep-alive代替

参考

官方项目地址

GitHub - alibaba/druid: 阿里云计算平台DataWorks(https://help.aliyun.com/document_detail/137663.html) 团队出品,为监控而生的数据库连接池

文档、常见问题

常见问题 · alibaba/druid Wiki · GitHub

KeepAlive - 《Alibaba Druid v1.0 使用手册》 - 书栈网 · BookStack

参数列表

DruidDataSource配置属性列表 · alibaba/druid Wiki · GitHub

参数配置例子

DruidDataSource配置 · alibaba/druid Wiki · GitHub

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Druid连接池是一种高效、可扩展的Java数据库连接池,官方文档详细地介绍了Druid连接池的功能、配置和使用方法。 首先,文档介绍了Druid连接池的特点。Druid连接池具有高度可配置性,可以通过配置文件或者代码来设置连接池参数,以适应不同的场景和需求。它还支持监控统计功能,可以实时监控连接池的使用情况,并提供详细信息和统计报表。此外,Druid连接池还支持防止恶意攻击、SQL注入等安全措施,以保护数据库的安全。 接下来,文档介绍了Druid连接池的配置方法。我们可以通过在配置文件中设置各种参数来配置连接池,例如设置初始化连接数、最大连接数、最小空闲连接数等。我们还可以配置连接的生命周期和验证策略,以及SQL统计功能等。Druid连接池还支持使用代码来动态配置连接池,这样可以更灵活地调整连接池参数。 然后,文档介绍了使用Druid连接池的方法。我们可以通过通过简单的几行代码来获取连接,如"DataSource dataSource = DruidDataSourceFactory.createDataSource(properties);"。获取连接后,可以使用该连接来执行SQL操作,并在完成后释放连接。Druid连接池还支持连接的自动扩展和收缩功能,可以根据连接的需求动态地增加或释放连接。 最后,文档介绍了Druid连接池的监控统计功能。我们可以通过配置一些参数来开启监控功能,并可以通过配置URL来访问监控的信息。监控信息包括连接数量、连接状态、执行的SQL语句等详细信息,以便我们能够全面了解连接池的使用情况,及时发现和解决问题。 总而言之,Druid连接池官方文档详细介绍了Druid连接池的功能、配置和使用方法,帮助用户更好地了解和使用Druid连接池,提高系统的数据库访问效率和安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值