论坛首页 Java企业应用论坛

Memcached JAVA客户端连接池空闲连接如何销毁

浏览 3716 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2013-10-23  
最近公司系统常量数据存取放在Memcached,服务端版本是:memcached-1.4.15,初始化连接池代码如下:
pool = SockIOPool.getInstance();
pool.setServers( serverlist );
pool.setInitConn(5);
pool.setMinConn(5);
pool.setMaxConn(20);
pool.setMaxIdle(600*1000);
pool.setMaxBusyTime(600*1000);
pool.setMaintSleep(600*1000);
pool.setSocketTO(3*1000);
pool.setNagle(false);
pool.initialize();

做了一轮压力测试后,连接数达到最大连接数20个连接,但是之后很久没有任何的存取数据操作,超过设置的最大空闲时间pool.setMaxIdle(600*1000),连接数还是20个连接保持建立着,请问有那个高手知道怎样让空闲的连接自动销毁?
   发表时间:2013-10-24  
请问有熟悉的帮忙解答下?紧急,非常感谢。
0 请登录后投票
   发表时间:2013-10-27  
我问下楼主,连接池是自己实现的?还是用的Memcache For Java Client啊?要是自己用Commons Pool实现的池子的话,连接用完了可以返回给池中;你说的意思是:假设现在池的容量20,目前只用了5个,那么另外15个就应该free掉。Executors.newCachedThreadPool
就有类似的功能:“创建一个可根据需要创建新线程的线程池,但是在以前构造的线程可用时将重用它们。对于执行很多短期异步任务的程序而言,这些线程池通常可提高程序性能。调用 execute 将重用以前构造的线程(如果线程可用)。如果现有线程没有可用的,则创建一个新线程并添加到池中。终止并从缓存中移除那些已有 60 秒钟未被使用的线程。因此,长时间保持空闲的线程池不会使用任何资源。”,研究下他的源码就知道了。
0 请登录后投票
   发表时间:2013-10-30  
你搞了池你担心什么?多余了。
0 请登录后投票
   发表时间:2013-10-30  
sosojustdo 写道
我问下楼主,连接池是自己实现的?还是用的Memcache For Java Client啊?要是自己用Commons Pool实现的池子的话,连接用完了可以返回给池中;你说的意思是:假设现在池的容量20,目前只用了5个,那么另外15个就应该free掉。Executors.newCachedThreadPool
就有类似的功能:“创建一个可根据需要创建新线程的线程池,但是在以前构造的线程可用时将重用它们。对于执行很多短期异步任务的程序而言,这些线程池通常可提高程序性能。调用 execute 将重用以前构造的线程(如果线程可用)。如果现有线程没有可用的,则创建一个新线程并添加到池中。终止并从缓存中移除那些已有 60 秒钟未被使用的线程。因此,长时间保持空闲的线程池不会使用任何资源。”,研究下他的源码就知道了。


头像是Lyn神啊
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics