关于优化API接口响应速度。。。

news/2025/2/19 15:08:17/

关于优化API接口响应速度。。。

今天只是粗略写写,关于这个优化设计的方面很多,接下来再仔细研究研究。

今天发现接口响应很慢,调开发者工具出来查看才发现接口居然耗时2秒左右,然后查了下后台逻辑,发现里面逻辑很多,有调用外部几个接口,还要查询数据库。

两个接口耗时都接近1.5秒了。看了下是查询工作流的接口,看来只能找平台部那边优化了。

剩下的就是优化我们这边系统的查询效率了。

首先需要分析为何慢了

是不是资源层面的瓶颈?

是不是缓存没添加,如果加了,是不是热点数据导致负载不均衡?

是不是有依赖于第三方接口?

是不是接口涉及业务太多,导致程序跑很久?

是不是sql层面的问题导致的等待时机加长,进而拖慢接口?

网络层面的原因?带宽?DNS解析?

代码不行?

未知?

对症下药

资源紧张,加机器,干上去,负载均衡搞起来!

加缓存可以解决的问题都不是什么大问题,存在热点数据可以将某几个热点单独出来用专门的机器进行处理,不要因为局部影响整体(这一次好像不涉及这个)

一方面与第三方沟通接口响应问题,另一方面超时时间注意把控,如果可以非核心业务能异步久异步掉。

把非核心的业务进行异步化操作。记住如果代码层面是非核心业务,但是会影响用户感知,需要慎重决定是否异步。

如果是代码不良导致加锁了,尽量优化索引或sql语句,让锁的级别最小(到行),一般来说到行差不多了。如果是单个sql跑慢了,需要分析是不是索引没加或者sql选的索引错了,索引该加的就加了,该force index也加了。

网路原因,需要找运维人员,单方面比较难有大的优化。

代码确实差,那也无药可救了。毁灭吧!

刚开始以为是机器性能不行,看了下系统负载,发现占用率并不高,好像也不是性能问题。

接着以为是应用优化,但是看了下 JVM 的相关参数和 Java 堆的使用情况,发现都不高,感觉应该是数据库的原因了,当时建表的时候没有建相关的索引。

然后考虑加下索引试试。

加了一个组合索引,还有一个单列索引。

加了之前在代码中加了时间记录,感觉有所提升。

剩下的就是外部接口的耗时了。


http://www.ppmy.cn/news/43653.html

相关文章

selenium自动化测试

这里写自定义目录标题自动化测试自动化测试的分类Web自动化测试的工具-selenium环境部署项目准备selenium常用方法查找页面元素元素的定位常见的元素操作窗口屏幕截图等待浏览器导航弹窗选择框执行脚本文件的上传浏览器的参数设置借用junit进行自动化测试注解断言用例的执行顺序…

yocto编译知识点

工作中经常会碰到yocto编译的问题,所以会把一些经常用到的东西逐步的记录在这里 1. CMAKE 1.1 bb文件 bb文件里常见的路径定义 TOPDIR :poky/build DL_DIR ?= “${TOPDIR}/downloads” 编译一个项目时会依赖三方库,所以会将通过网络下载的三方库放到这个路径。因此下载成…

局部图像描述子------Harris角点检测器

一.Harris角点检测 1.实验原理 1.1什么是角点 角点就是极值点,即在某方面属性特别突出的点,是在某些属性上强度最大或者最小的孤立点,线段的终点。而对于图像而言,即是图像的角点,其是物体轮廓线的连接点。因此在角…

前端利用AJAX下载文件的方法

function DownloadFile(tmp) { // 下载文件的函数,tmp是文件的路径,包括文件名var url "http://" location.host tmp; // 拼接完整的URLconsole.log("打印url的样式", url); // 打印拼接后的URLvar filename url.substring(url.…

jmap执行失败了,怎么获取heapdump?

在之前的OOM问题复盘中,我们添加了jmap脚本来自动dump内存现场,方便排查OOM问题。 但当我反复模拟OOM场景测试时,发现jmap有时可以dump成功,有时会报错,如下: 经过网上一顿搜索,发现两种原因可…

NumPy 基础知识 :6~10

原文:Numpy Essentials 协议:CC BY-NC-SA 4.0 译者:飞龙 六、NumPy 中的傅立叶分析 除其他事项外,傅立叶分析通常用于数字信号处理。 这要归功于它在将输入信号(时域)分离为以离散频率(频域&am…

Python圈的普罗米修斯——一套近乎完善的监控系统

文章目录前言一、怎么采集监控数据?二、采集的数据结构与指标类型2.1 数据结构2.2 指标类型2.3 实例概念2.4.数据可视化2.5.应用前景总结前言 普罗米修斯(Prometheus)是一个SoundCloud公司开源的监控系统。当年,由于SoundCloud公司生产了太多的服务&…

【能力提升】SQL Server常见问题介绍及快速解决建议

前言 本文旨在帮助SQL Server数据库的使用人员了解常见的问题,及快速解决这些问题。这些问题是数据库的常规管理问题,对于很多对数据库没有深入了解的朋友提供一个大概的常见问题框架。 下面一些问题是在近千家数据库用户诊断时发现的常规问题&#xff0…