财务系统-axxBank和marginCall项目上线小总结

财务对账一期,在各方势力催促下,匆匆忙忙上线了,上线之后,第一天cat监控显示有4个接口超过了300ms,最高请求能达到1秒多,爆炸!

微信截图_20170930155822
接下来,查找原因,4个接口4条业务线逐一排查,首先走Debug先从sql入手,对于新增的表 没有及时建立索引的,增加索引保证sql最优化,接下来走单元测试打印运行时间,看代码块响应时间,优化代码 !
这次调优印象最深的有两点:

1、有个业务方法,在for循环中加了sql查询,这个错误太明显,

微信图片_20170930155009
二话不说修复代码将所需3张表的数据一次性加载到内存中,在内存中进行各项封装,时间从180ms优化到6ms,鼓掌!~\(≧▽≦)/~
2、另一个错误是在频繁使用一个三级分类查询中,使用了google guava缓存,有一个方法未写正确,导致每次都重新查询加载到缓存中,怎么避免这种失误很简单,debug断点看是否第一次加载进去,第二次从缓存中直接取到,还是不能太相信自己,直接测试功能就认为没问题
经过一些修改之后,使用勇勇的gatling压测,4个接口平均响应时间已经低于40ms

本次小总结:

1、sql优化,养成每个sql在写代码阶段就自己进行性能调优监控的习惯
2、单元测试,不能只是简单的测试功能是否正常,打印出响应时间,好坏立刻见效
3、上述两条只是基本的编程习惯,有了上述两个之后,适当地使用缓存,上线之前进行压测,都是避免不必要问题的措施啦~

江湖路远,下期再见~

微信图片_20170930155456

《财务系统-axxBank和marginCall项目上线小总结》有4个想法

发表评论

电子邮件地址不会被公开。 必填项已用*标注