druid连接池

druid连接池

  • 网络闪断无效连接无法从池里剔除
    • 聊天记录
  • 预填充连接
  • 自带加密功能
  • 性能压测时getConnection时耗时久

网络闪断无效连接无法从池里剔除

druid的1.1.12版本 网络闪断后,会出现无效的连接不能从池里剔除掉 后来1.1.16版本修复了该问题, 目前我们的项目直接使用1.1.2版本
druid连接池_第1张图片
druid1.1.16发布版本连接

聊天记录

Druid数据库连接池从1.0.28开始,添加了druid.keepAlive属性,默认关闭
打开druid.keepAlive之后,当连接池空闲时,池中的minIdle数量以内的连接,空闲时间超过minEvictableIdleTimeMillis,则会执行keepAlive操作,即执行druid.validationQuery指定的查询SQL,一般为select * from dual,只要minEvictableIdleTimeMillis设置的小于防火墙切断连接时间,就可以保证当连接空闲时自动做保活检测,不会被防火墙切断

嗯,这个只是保持连接,不涉及重连,重连的话有两个参数可以控制;
1、testOnBorrow:拿连接之前进行检查(比较消耗性能,每次拿链接的消耗会加倍)
2、testWhileIdle:空闲时间检查

参考文章地址

  • 会影响性能
    在这里插入图片描述
    在这里插入图片描述

预填充连接

initialSize 即就是初始化好几个连接供应用使用

自带加密功能

#其中postgres为密码
java -cp .\druid-1.1.12.jar com.alibaba.druid.filter.config.ConfigTools postgres

druid连接池_第2张图片

加密页面
druid连接池_第3张图片

性能压测时getConnection时耗时久

-Dspring.shardingsphere.datasource.db-003.removeAbandoned=false
-Dspring.shardingsphere.datasource.db-003.logAbandoned=false

在进行sharding性能压测时,在获取物理连接时,所有线程会集中获取连接,导致连接即将耗尽,触发检查孤连接逻辑,以回收无效的孤连接,这个过程对于获取连接来说是阻塞的,因此耗时会久一点
而上面两个参数设置为false意思 不会做这个检查孤连接, 缩短了get连接的阻塞时间

你可能感兴趣的:(druid连接池)