在线上环境中,经常会出现服务卡顿,造成数据无法更新、获取的现象。对于这种现象现,个人一自身的工作经历总结如下:
一、定时任务时间间隔短,造成服务卡顿,线程池爆满,线程锁无法释放,进而服务崩溃:
设定的时间间隔内,程序未执行完成,又开始进行下一轮的程序执行,这样的幂等性执行最终造成线程池爆满,服务崩溃;
解决办法:根据业务量计算程序执行一次耗时,科学合理设定时间间隔;
二、定时任务,程序中存在HTTP请求,但是请求地址已经改变或者因为其他原因无法访问,这样累计起来的无响应请求,最终造成服务假死。
解决办法:关掉HTTP请求,或者排查HTTP请求服务故障;