针对疫情影响企业收入资源短缺一些老项目,做了许多降本增效的事情,其中发现最多的就是接口耗时过长的问题,就集中搞了一次接口性能优化。
二、接口优化方案执行
1、批处理
批量思想:批量操作数据库,项目往往有需要批量插入操作,比如商品,品格,价格等,可以在批处理执行完成后一次性插入或更新数据库,避免多次 IO。
//for循环单笔入库
list.stream().forEatch(c->{
insert();
});
//批量入库
batchInsert();
2、异步处理
异步思想:在项目中这种思想我们经常用到,最常见的场景就是订单的生成。订单的生成往往需要异步结果返回,在同步下单生成订单。像下单计算运费,下单需要加载sku,下单计算总价,下单商品库存计算,下单用户积分账号等等,每一个计算往往需要,商品项目,订单项目。物流项目,用户体系,积分体系,支付体系等针对耗时比较长且结果不需要同步的逻辑,我们可以考虑放到异步执行,这样能降低接口总耗时。异步的实现方式,可以用线程池,也可以用消息队列,还可以用一些调度任务框架。目前调度任务框架的用法居多。
3、空间换时间
一个很好理解的空间换时间的