记录一次接口优化

698 2~2 min

记录一次接口优化

调用流程

image.png

前端请求接口, 直接请求业务接口,针对返回的数据进行优化,来处理某些权限逻辑, 原文链接SpringAop实践返回数据处理

优化前

接口响应速度4s左右(本地调试 win10-32G-i5 9400)且各个服务第一次被调用时时间更长,有可能超出设置的Ribbon超时时间

优化后

接口响应速度400ms-500ms左右(本地调试 win10-32G-i5 9400)

优化手段

  • 网络IO
    1. 切面的逻辑涉及到调用其他服务,通常每次处理的数据大概20-30条左右(分页中一页的数据量)原先的逻辑是针对每条数据都会远程调用一次User服务来获取当前登录人的角色、权限信息,这就造成了每条数据都会远程调用一次,对网络开销是极大的浪费,因为登录人是固定的可以在只调用一次查询,将查询结果缓存
    2. 查询用户的信息仅是角色、岗位,所以没必要将无用的信息在查询出来,节省网络带宽,和传输的数据
  • 磁盘IO
    1. 对数据库的交互操作,要尽可能少连接,多获取如:避免代码中循环操作数据库(增删改查) 可以使用in 的方式进行多条数据的获取,处理数据的逻辑交给内存来做
  • 热点数据(长期优化)
    1. 数据库中针对1个月或者更长的时间进行迁移,让常用的数据库保持热点数据