apache common pool提供了抽象的resource pool实现,可以快速封装tcp等resource。
连接池内置了idle, evict的实现,可以对idle resource进行有效管理,回收过多的idle resource。
在apache common pool中,关于idle resource的配置项较多,配置项需要组合使用,下面对常用的配置项组合及其效果进行分析。
仅控制idle连接的数量至maxIdle以下
设置minIdle, maxIdle。
此时resource pool确保idle resource数量不大于maxIdle,但有可能小于minIdle
控制idle连接的数量至minIdle
设置minIdle, maxIdle, timeBetweenEvictionRuns>0。
此时resource pool进行定期check并回收或创建新的resource,保证最终idle resource数量等于minIdle。
注:
timeBetweenEvictionRuns为检测线程调度周期
softMinEvictableIdleTime为idle resouce允许的空闲时间。