记录一次接口优化
记录一次接口优化
调用流程
前端请求接口, 直接请求业务接口,针对返回的数据进行优化,来处理某些权限逻辑, 原文链接:SpringAop实践返回数据处理
优化前
接口响应速度4s左右(本地调试 win10-32G-i5 9400)且各个服务第一次被调用时时间更长,有可能超出设置的Ribbon超时时间
优化后
接口响应速度400ms-500ms左右(本地调试 win10-32G-i5 9400)
优化手段
- 网络IO
- 切面的逻辑涉及到调用其他服务,通常每次处理的数据大概20-30条左右(分页中一页的数据量)原先的逻辑是针对每条数据都会远程调用一次User服务来获取当前登录人的角色、权限信息,这就造成了每条数据都会远程调用一次,对网络开销是极大的浪费,因为登录人是固定的可以在只调用一次查询,将查询结果缓存
- 查询用户的信息仅是角色、岗位,所以没必要将无用的信息在查询出来,节省网络带宽,和传输的数据
- 磁盘IO
- 对数据库的交互操作,要尽可能
少连接,多获取
如:避免代码中循环操作数据库(增删改查) 可以使用in
的方式进行多条数据的获取,处理数据的逻辑交给内存来做
- 对数据库的交互操作,要尽可能
- 热点数据(长期优化)
- 数据库中针对1个月或者更长的时间进行迁移,让常用的数据库保持热点数据