当前位置:网站首页>关于优化API接口响应速度
关于优化API接口响应速度
2022-06-10 22:39:00 【Li_XiaoJin】
关于优化API接口响应速度。。。
今天只是粗略写写,关于这个优化设计的方面很多,接下来再仔细研究研究。
今天发现接口响应很慢,调开发者工具出来查看才发现接口居然耗时2秒左右,然后查了下后台逻辑,发现里面逻辑很多,有调用外部几个接口,还要查询数据库。
两个接口耗时都接近1.5秒了。看了下是查询工作流的接口,看来只能找平台部那边优化了。
剩下的就是优化我们这边系统的查询效率了。
首先需要分析为何慢了
- 是不是资源层面的瓶颈?
- 是不是缓存没添加,如果加了,是不是热点数据导致负载不均衡?
- 是不是有依赖于第三方接口?
- 是不是接口涉及业务太多,导致程序跑很久?
- 是不是sql层面的问题导致的等待时机加长,进而拖慢接口?
- 网络层面的原因?带宽?DNS解析?
- 代码不行?
- 未知?
对症下药
- 资源紧张,加机器,干上去,负载均衡搞起来!
- 加缓存可以解决的问题都不是什么大问题,存在热点数据可以将某几个热点单独出来用专门的机器进行处理,不要因为局部影响整体(这一次好像不涉及这个)
- 一方面与第三方沟通接口响应问题,另一方面超时时间注意把控,如果可以非核心业务能异步久异步掉。
- 把非核心的业务进行异步化操作。记住如果代码层面是非核心业务,但是会影响用户感知,需要慎重决定是否异步。
- 如果是代码不良导致加锁了,尽量优化索引或sql语句,让锁的级别最小(到行),一般来说到行差不多了。如果是单个sql跑慢了,需要分析是不是索引没加或者sql选的索引错了,索引该加的就加了,该force index也加了。
- 网路原因,需要找运维人员,单方面比较难有大的优化。
- 代码确实差,那也无药可救了。毁灭吧!
刚开始以为是机器性能不行,看了下系统负载,发现占用率并不高,好像也不是性能问题。
接着以为是应用优化,但是看了下 JVM 的相关参数和 Java 堆的使用情况,发现都不高,感觉应该是数据库的原因了,当时建表的时候没有建相关的索引。
然后考虑加下索引试试。
加了一个组合索引,还有一个单列索引。
加了之前在代码中加了时间记录,感觉有所提升。
剩下的就是外部接口的耗时了。
Copyright: 采用 知识共享署名4.0 国际许可协议进行许可 Links:https://lixj.fun/archives/优化api接口响应速度
边栏推荐
- Prefer "big and small weeks", only write 200 lines of code every day, and the monthly salary of 8k-17k people will rise again
- Excel essential toolbox 17.0 Free Edition
- LabVIEW phase locked loop (PLL)
- Is it safe to open an account in Shanghai Securities?
- 长投学堂开户安全吗?靠谱吗?
- R 语言绘制二维正态分布的密度曲面图;
- 执行Oracle的SQL语句报错【ORA-00904: “CREATETIME“: 标识符无效】、【ORA-00913: 值过多】解决办法
- LabVIEW编程规范
- Common settings for vs
- Solve access denied for user 'root' @ 'localhost' (using password: yes)
猜你喜欢

示波器和频谱分析仪的区别

vtk.js中vtp下载

LabVIEW和VDM提取色彩和生成灰度图像

R 语言绘制二维正态分布的密度曲面图;

改变世界的开发者丨玩转“俄罗斯方块”的瑶光少年

LabVIEW open other exe programs

Expandable to Max – MCU and MPU development, using the same license

Prefer "big and small weeks", only write 200 lines of code every day, and the monthly salary of 8k-17k people will rise again

Create millisecond time id in LabVIEW

Serial port missing in Ni Max in LabVIEW
随机推荐
LabVIEW和VDM提取色彩和生成灰度图像
LeetCode 501 :二叉搜索樹中的眾數
34. find the first and last positions of elements in the sorted array - binary search, double pointer
LeetCode 501 :二叉搜索树中的众数
宁愿“大小周”、每天只写 200 行代码、月薪 8k-17k 人群再涨
Why many new websites are not included by search engines
LabVIEW determines the position of the control in the display coordinate system
LabVIEW中NI MAX中缺少串口
LabVIEW中创建毫秒时间标识
Redis installation and common problem solving based on centeros7 (explanation with pictures)
LabVIEW obtains the information of all points found by the clamp function
【LaTex】latex VS Code snippets(代码片段)
【无标题】
Ilruntime hotfix framework installation and breakpoint debugging
Four ways to add names to threads in the thread pool
上海网上开户是安全的吗?
LabVIEW执行串行回送测试
Is it safe to open an account in Shanghai Stock Exchange?
LabVIEW change the shape or color of point ROI overlay
redis列表list常用命令大全