Druid 连接池源码阅读 10
如果启用了连接保活机制没有设置物理连接超时参数, Druid-ConnectionPool-Destroy 守护线程,默认每 1 分钟执行一次连接池保活机制,会把有问题的连接和连接空闲时间大于连接保持空闲而不被驱逐的最大时间,添加到弃用数据库连接数组(如果配置了物理连接超时时间,则会系统当前时间减去连接开始时间的差值大于物理超时时间的数据库连接也添加到弃用数据库连接数组);其他数据库连接,连接空闲时间大于保活检查间隔时间(可以通过 spring.datasource.druid.keep-alive-between-time-millis 配置 keepAliveBetweenTimeMillis 的值),连接被添加到数据库连接保活数组。druid 关闭弃用数据库连接数组中的连接,对于并对非弃用连接(数据库连接保活数组中的连接)进行检查,如果连接正常则重新加入连接池,如果连接有问题则关闭连接,如果连接重新加入数据库连接池失败也会关闭连接,如果连接池中连接数小于最小空闲连接数则唤醒 Druid-ConnectionPool-Create 守护线程创建新的连接。
评论