1、首先要了解此接口的上下游有哪些,整理出来。
例如:给上游调用,了解到他们的调用场景,是job调用,还是web页面调用,调用是否频繁。
调用下游接口,如果改动,评估是否会对下游接口造成影响。
2、如果接口入参是list,考虑控制list限制,太大务必会影响接口性能。
3、接口逻辑复杂的尽量把业务流程梳理出来,寻找可优化的点。
4、考虑是否有循环操作数据库,是否可以改成批量。
5、考虑sql是否可以优化
5.1、索引优化
5.2、sql语句优化
5.2、是否回表
5.3、是否会导致索引失效
6、考虑代码内是否有逻辑可以改成异步调用(使用线程池或者MQ)
6.1、如果改成异步调用,考虑到异步操作是否需要加补偿机制,以防出现异常,上游不可知
6.2、补偿机制使用job重试机制,如对性能要求,可通过MQ消费
6.3、如果使用线程池,考虑线程数+队列是否可以处理完任务,考虑拒绝策略是否会丢失任务
6.4、如果使用MQ,还需考虑补偿