redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool at redis.clients.util.Pool.getResource(Pool.java:22) …………………… Caused by: java.util.NoSuchElementException: Could not create a validated object, cause: ValidateObject failed at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1233) at redis.clients.util.Pool.getResource(Pool.java:20)
发布评论
评论(2)
我们现在使用Redis作为数据缓存,数据量不是很大,不超过一万条。写入的操作很少,主要是读取。
所以我使用了一主两从的模式,主实例主要负责写入数据和部分读取任务-大概有9个Tomcat的实例访问。两个从实例主要是读取数据,各15个tomcat的实例。
我们使用sharedJedispool,JedisPoolConfig:
MaxActive=500;
MaxIdle=100;
MaxWait=1000;
其他参数默认,redis的MaxClients = 655360.
有大并发请求的时候,使用从实例的30个Tomcat服务经常报错如下:
redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool
at redis.clients.util.Pool.getResource(Pool.java:22)
……………………
Caused by: java.util.NoSuchElementException: Could not create a validated object, cause: ValidateObject failed
at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1233)
at redis.clients.util.Pool.getResource(Pool.java:20)
然后这个时候,这两个从实例,使用redis-cli访问也链接不上,报错:
connetion time out
我使用完jedis实例后,后使用returnResource释放,如果遇到上面的错误,我也会调用returnBrokenResource释放。
请问,您遇到过这样的问题?您如何处理的?请给我一个建议,谢谢。
并发量还算不小吧,你有什么问题?