前两天项目上线的时候遇到了redis的一个问题,在测试环境的时候项目运行正常,项目一上线redis便开始抛异常。
redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool at
…
Caused by: java.util.NoSuchElementException: Unable to validate object at
…
看日志发现是池的连接不够,但是项目的调用量完全在预算之内。网上说有RDB持久化的问题,也有说是配置了 redisTestOnBorrow导致检查的时候连接不通过。但是经过排查都不是。后来去业务代码中去寻找问题、
发现这段代码public boolean remove(final String key) { try {
wemproxy,用一致性Hash算法,所以每次切数据库去找的时候就会找不到连接
。
这里把问题记录下来,大家以后在排查问题的时候一定要把异常与业务相结合,这样才能找到自己的真正问题。