Could not get a resource from the pool 中文翻译:无法从池中获取资源
导致:redis的缓存崩溃
出现原因:1.最大链接数量超标,2.资源未回收
解决1方式:调大你的缓存配置参数
最小能够保持idel状态的对象数
minIdle=500
当池内没有返回对象时,最大等待时间
maxWaitMillis=10000
解决2方式:成功关闭连接,失败也要关闭连接*
从你的代码你能清晰找到以下代码:
jedisPool.returnBrokenResource(jedis); //异常释放资源方法returnBrokenResource
jedisPool.returnResource(jedis); //正常释放资源方法returnResource
那么你的代码就是这样了:
try{ } catch (Exception e) {
returnBrokenResource(jedis);
logger.error("I am error:{}", e);
} finally {
returnResource(jedis);
}