最近在做一个移动应用类项目,应用到生产环境后频繁出现后台服务无影响的问题,开始总以为是移动端逻辑问题,导致线程几何倍数增长撑爆线程池,因此针对移动端逻辑进行了不断的优化(无形中也算是一件好事),可以是在实际使用环境中还是出现服务无响应的情况。
其实之前的报错信息已经很明显了, druid 连接池已经到达最大值。但是由于本身数据技术菜鸟,未想到是慢查询导致得到占用线程。当时的处理办法是把线程池增大到了50。
短时间的确是有点效果,但是问题不长又重新出现了问题。后续又做了其它尝试,诸如启动线程回收,增大缓存等等优化仍然不见效。最后一位经验老道的同事偶然提到可能是慢查询的问题,才最终锁定问题关键。
优化sql语句,增加索引,之后重启系统重新上线,目前服务运行稳定。
也许对于大神来说这个问题太小case了,但是对于一个对未知孜孜以求的菜鸟来说,的确是一个宝贵的经验。
仅以此文记录此次心得。