目录
问题现象:
最近在做一个项目,部署到服务器上后,后台某个接口频繁出现被阻塞的情况,发送请求长时间没有响应,甚至超过tomcat的超时时间,还是处于等待状态。
问题分析:
1、出现问题的接口分析,代码中不存在锁,甚至连接数据库的都没有,代码上应该不会造成这种问题;
2、本地测试没有出现这种问题,部署到服务器上问题出现很频繁,难道是服务器问题?
3、某个晚上测试的时候,突然出现所有接口都不能使用的情况,不再是那几个接口有问题了。(这里埋下个伏笔)
4、怀疑过框架、服务器等等,感觉都不合理,没有理由出现这种情况。
原因查找:
用JCONSOLE看一下JVM内存和线程情况,看是否内存不足或者线程消耗后没有释放,导致不够用(虽然觉得不可能,因为有时候一启动就发生这种现象,但是还是试试看,毕竟没办法了)。
发现一个现象,一旦出现阻塞情况,再发请求,活动线程数会增加,不会释放。