您的位置:首页 > 其它

commons-pool2-2.4.2连接池读后笔记

2016-07-02 00:00 363 查看
花了一天,认真把配置项梳理了一下,分类整理如下:

// 0)构造poolConfig
GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig();
poolConfig.setJmxEnabled(false);// 是否启用统计,这里不启用
// 1)系统启动
poolConfig.setMinIdle(config.getIntValue(MyConstants.MINIDLE));// 启动时会有线程负责初始化这么多个连接,一个线程负责

// 2)获取对象相关的配置
// 获取一个object是1)直接borrow->create->等待队列可用+最大等待时长(最大等待时长的borrow)
poolConfig.setFairness(BaseObjectPoolConfig.DEFAULT_FAIRNESS);// 从队列里borrow时加锁,默认值为false,保持默认,后台为一个ReentrantLock锁
poolConfig.setMaxTotal(config.getIntValue(MyConstants.MAXTOTAL));// 是否可以直接create
poolConfig.setBlockWhenExhausted(config.getBooleanValue(MyConstants.BLOCKWHENEXHAUSTED));
poolConfig.setMaxWaitMillis(config.getLongValue(MyConstants.MAXWAIT));
poolConfig.setTestOnBorrow(config.getBooleanValue(MyConstants.TESTONBORROW));// borrow的时候,是否需要测试->调用validateObject
poolConfig.setTestOnCreate(config.getBooleanValue(MyConstants.TESTONCREATE));// create的时候,是否需要测试->调用validateObject
//

// 3)归还对象时相关的配置
poolConfig.setMaxIdle(config.getIntValue(MyConstants.MAXIDLE));// 是否可以归还此对象?
poolConfig.setLifo(false);// 一旦确定归还,放入队列头还是尾?
poolConfig.setTestOnReturn(config.getBooleanValue(MyConstants.TESTONRETURN));// return的时候,是否需要测试->调用validateObject

//
// 4)定期驱逐策略[比较重要,及时驱逐劣币就靠这个了]
poolConfig.setEvictionPolicyClassName(BaseObjectPoolConfig.DEFAULT_EVICTION_POLICY_CLASS_NAME);// 默认值
poolConfig.setTimeBetweenEvictionRunsMillis(
config.getIntValue(MyConstants.TIMEBETWEENEVICTIONRUNSMILLIS));// evict驱逐线程的间隔周期
poolConfig.setNumTestsPerEvictionRun(BaseObjectPoolConfig.DEFAULT_NUM_TESTS_PER_EVICTION_RUN);// 每次进行驱逐测试的个数
poolConfig.setMinEvictableIdleTimeMillis(config.getLongValue(MyConstants.MINEVICTABLEIDLETIMEMILLIS));// 如果超过这段时间没有被使用,则无条件被强制驱逐
poolConfig
.setSoftMinEvictableIdleTimeMillis(BaseObjectPoolConfig.DEFAULT_MIN_EVICTABLE_IDLE_TIME_MILLIS);// 如果当前idle的个数>minIdle,并且idle时长超过这个阈值(默认为30分钟),则立刻被驱逐
poolConfig.setTestWhileIdle(config.getBooleanValue(MyConstants.TESTWHILEIDLE));// idle时,通过了evict测试,判断是否需要被测试->调用validateObject
//

网上其他人写的博客也不错:可以做做参考:
http://my.oschina.net/u/1381600/blog/601870 http://www.bubuko.com/infodetail-948811.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  commons-pool2 2.4.2