说一下 解决 高并发下的系统死服务的心酸历程 用户登录的时候 做了切面 查询redis 缓存 但是并发一过200 tcp连接 开始不释放 最后找到原因 是因为 用户登录时 的切面用到了redis 做缓存数据 redis 连接池满的 把请求挂起 而且 最大失效时间 设置为 50000 导致连接保持。直到服务死掉。
解决方法一 :
调大连接池 ,从200 调 直 500 ,但是并发超过 500时问题依然存在
解决方法二 :
调小最大等待时候 从 50000调制 500 只要是没有连接 马上返回异常 这样可以保证其它的请求与业务正常运转。
解决方法三 :
Tomcat的server.xml文件中将jdk线程池调整为Tomcat线程池
Tomcat的server.xml文件中将jdk线程池调整为Tomcat线程池 |