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

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

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

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

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

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

首先需要分析为何慢了

是不是资源层面的瓶颈?

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

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

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

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

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

代码不行?

未知?

对症下药

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

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

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

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

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

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

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

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

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

然后考虑加下索引试试。

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

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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值