当前位置:首页 > 实用技巧 >

数据请求超时怎么解决(请求响应慢导致超时怎么解决)

来源:原点资讯(m.360kss.com)时间:2023-11-24 22:31:08作者:YD166手机阅读>>

图18 线程池执行模型

这种方式在流量较低的情况下看不出什么问题,流量变高会导致需要的线程数量成倍增加。

例如:一次请求 A 需要调用 BCD 3个接口,那100个并发需要的线程数就是100 3*100=400(第一个100是A对应的主线程,后面的3*100是 BCD 需要的100个线程)。

3)解决方案

线程池并发调用改成 NIO 异步调用,如下图所示。

和之前对比,100 个并发,需要的线程数也是 100(这个地方不考虑 NIO 本身的线程,这个是全局的,并且是相对固定很少的线程数)。

数据请求超时怎么解决,请求响应慢导致超时怎么解决(21)

图19 NIO异步调用执行模型

4)效果

超时问题没再出现,CPU Load 平均下降50%,之前 Load 经常超过2(CPU 核数为2),改造之后 Load 降到 0.5 左右。

数据请求超时怎么解决,请求响应慢导致超时怎么解决(22)

图20 CPU Load优化后效果

7.启动阶段预热

启动阶段预热可以提前建立链接,减少流量接入时的链接建立,从而降低超时的发生。

1)分析

应用拉入后出现大量超时,并且 CPU Load 高 CPU 利用率正常,说明有很多等待线程,这种是拉入后有大量请求在等待被处理。

之前我们生产遇到过是在等待 Redis 建立链接,建链的过程是同步的,应用刚拉入请求量瞬间涌入就会导致大量请求在等待 Redis 建链完成。

2)解决方案

启动阶段预热提前建立链接,或者是配置 Redis 的最小空闲连接数。其他资源准备也可以通过启动阶段预热完成,比如 DB 链接、本地缓存加载等。

8.优化 JIT

JIT(Just-In-Time)编译可以提高程序的运行效率,灰度接入流量将字节码编译成本地机器码,避免对接口性能的影响。

1)JIT 介绍

JIT 是 Just-In-Time 的缩写,意为即时编译。JIT 是一种在程序运行时将字节码编译为本地机器码的技术,可以提高程序的执行效率。

在 Java 中,程序首先被编译为字节码,然后由 JVM 解释执行。但是,解释执行的效率较低,因为每次执行都需要解释一遍字节码。为了提高程序的执行效率,JIT 技术被引入到 Java 中。JIT 会在程序运行时,将频繁执行的代码块编译为本地机器码,然后再执行机器码,这样可以大大提高程序的执行效率。

2)分析

JIT 技术可以根据程序的实际运行情况,动态地优化代码,使得程序的性能更好。但是JIT 编译过程需要一定的时间,因此在程序刚开始运行时,可能会出现一些性能瓶颈。

如下图应用拉入后 JIT 时间很久,那可以确认是 JIT 导致超时。

数据请求超时怎么解决,请求响应慢导致超时怎么解决(23)

图21 JIT执行时间

3)解决方案

优化 JIT 一个比较好的方案是开启服务预热(预热功能携程 RPC 框架是支持的)。

原理是让应用拉入后不是立马接入100% 流量,而是随着时间移动来逐渐增加流量,最终接入100% 流量,这种会让小部分流量将热点代码提前编译好。

4)效果

开启服务预热后,如下图所示,应用流量是逐渐增加的,可以看到响应时间随着时间越来越低,这就达到了预热的效果。

数据请求超时怎么解决,请求响应慢导致超时怎么解决(24)

栏目热文

数据获取失败怎么解决(获取数据失败是什么毛病)

数据获取失败怎么解决(获取数据失败是什么毛病)

随着科技的不断进步,电脑已经成为了人们日常生活中不可或缺的一部分。在电脑中,硬盘是最为重要的存储设备之一,它存储了我们的...

2023-11-24 22:27:48查看全文 >>

怎样修复数据请求异常(数据请求出错了怎么解决)

怎样修复数据请求异常(数据请求出错了怎么解决)

嗨,大家好,我是勾勾。上次分享的Excel技巧是不是很实用呢?我们在数据分析的路上,不光要熟练掌握各种数据分析工具,更要...

2023-11-24 21:50:41查看全文 >>

自己的车后桥加什么油(汽车后桥加齿轮油加多少合适)

自己的车后桥加什么油(汽车后桥加齿轮油加多少合适)

车辆后桥齿轮是双曲线齿轮,双曲线齿轮的工作条件苛刻,随着汽车的开开停停,经常处在高速冲击负荷,高速低扭矩,低速高扭矩状况...

2023-11-24 21:55:01查看全文 >>

一般车的后桥用什么油(车后桥用什么齿轮油最好)

一般车的后桥用什么油(车后桥用什么齿轮油最好)

汽车的保养维护,一般就是检查汽车的三滤二油,其中的一个油就是后桥油,那么什么是后桥油,后桥油需要多久更换一次呢?汽车后桥...

2023-11-24 21:49:02查看全文 >>

后桥加齿轮油是加满吗(后桥一般加多少齿轮油合适)

后桥加齿轮油是加满吗(后桥一般加多少齿轮油合适)

汽车首保大家经常见,房车的首保你见过吗?柴油车和汽油车保养有什么不同呢?我们一起来看一下吧!这些就是保养科目需要用到原材...

2023-11-24 22:03:01查看全文 >>

如何解决数据获取失败(为什么会显示数据获取失败)

如何解决数据获取失败(为什么会显示数据获取失败)

这是一个很常见的问题,一个简单的VLOOKUP公式,怎么看都没有问题,就是得不到正确的结果:=VLOOKUP(D2,A:...

2023-11-24 22:22:42查看全文 >>

数据获取失败怎么回事(数据加载失败是怎么办)

数据获取失败怎么回事(数据加载失败是怎么办)

小编今天将为大家分享一下关于C#高频数据采集的经验。在现代信息化时代,数据对于企业和个人来说都具有重要意义,而如何高效地...

2023-11-24 21:53:10查看全文 >>

请求名称有效但是找不到有效数据(错误信息没有找到指定的数据)

请求名称有效但是找不到有效数据(错误信息没有找到指定的数据)

HTTP是什么HTTP协议(Hyper Text Transfer Protocol,超文本传输协议)是一个简单的请求-...

2023-11-24 22:22:40查看全文 >>

数据载入失败怎么解决(数据加载困难怎么办)

数据载入失败怎么解决(数据加载困难怎么办)

r星是一个知名的游戏开发公司,旗下的侠盗猎车手系列等作品都深受玩家们的喜爱。最近却有玩家问迅游,遇到r星离线模式无法建立...

2023-11-24 22:01:30查看全文 >>

批量合并单元格且保留每行数据(批量按列合并单元格并保留内容)

批量合并单元格且保留每行数据(批量按列合并单元格并保留内容)

在EXCEL表格里,查询数据是常有的事,针对指定条件查询数据,结果无外乎就是查不到和查得到的区别,查得到又可能分为一个结...

2023-11-24 22:25:24查看全文 >>

文档排行