System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机网络,尤其涉及一种基于请求头的业务限流方法、装置、设备及存储介质。
技术介绍
1、随着网络服务的多样化发展,特别是互联网和移动互联网的快速普及,系统接收到的请求数量显著增加。传统的限流方法基于固定阈值或规则,难以适应不同业务请求特征的复杂性,尤其是难以适应动态变化的请求流量。例如,当前的业务限流方案通常需要对http请求数据包进行解包处理,才能实现具体的业务限流。这种方式不仅耗费大量的服务器资源,而且在多个参数传入的情况下,计算量非常大,导致系统性能下降。
2、本专利技术旨在提供一种无需解包即可实现业务限流的方案,从而节省服务器资源,提高限流效率。
技术实现思路
1、本申请提供了一种基于请求头的业务限流方法、装置及存储介质,以解决当前的业务限流方案需要对请求数据包进行解包处理,才能实现具体的业务限流,不仅耗费大量的服务器资源,而且在多个参数传入的情况下,计算量非常大,导致系统性能下降的问题。
2、第一方面,本申请提供了一种基于请求头的业务限流方法,所述方法包括:
3、基于历史请求数据进行数据包参数分析,确定数据分析结果;其中,数据分析结果包括请求数据包的大小分布;
4、基于所述数据分析结果进行动态参数分析,确定估计动态参数数量和估计动态参数资源消耗;
5、基于所述估计动态参数数量和估计动态参数资源消耗,确定单个最小单元参数数据长度;
6、基于不同数据接口的所述请求数据包的大小分布,估计不同接口请
7、基于所述不同接口请求数据参数的数量,确定每个请求对应的业务参数数据包大小;
8、在接收到业务请求时,基于所述每个请求对应的业务参数数据包大小,确定所述业务请求对应的最小单元业务参数数据包大小;
9、根据预设限流策略和所述最小单元业务参数数据包大小,确定是否对所述业务请求进行限流。
10、在一些实施例中,基于所述估计动态参数数量和估计动态参数资源消耗,确定单个最小单元参数数据长度,包括:
11、获取设备的线程数量;
12、基于所述线程数量、所述估计动态参数数量和所述估计动态参数资源消耗,确定最小单元数据包的请求响应时间;
13、基于所述最小单元数据包的请求响应时间和资源消耗,确定所述单个最小单元参数数据长度。
14、在一些实施例中,所述基于所述最小单元数据包的请求响应时间和资源消耗,确定所述单个最小单元参数数据长度,包括:
15、获取动态参数的响应时间系数;
16、基于所述动态参数的响应时间系数、所述最小单元数据包的请求响应时间和资源消耗,确定所述单个最小单元参数数据长度。
17、在一些实施例中,所述基于所述动态参数的响应时间系数、所述最小单元数据包的请求响应时间和资源消耗,确定所述单个最小单元参数数据长度,包括:
18、将所述最小单元数据包的请求响应时间乘以所述响应时间系数,得到目标响应时间;
19、基于所述目标响应时间和所述资源消耗,确定所述单个最小单元参数数据长度。
20、在一些实施例中,所述获取动态参数的响应时间系数,包括:
21、基于所述请求数据包的大小分布进行聚类处理,得到多个数据包分组;其中,每个所述数据包分组内的数据包大小差异不超过预设值;
22、对所述数据包分组内的相邻数据包,通过以下公式计算得到平均值:
23、
24、其中,a为求解的平均值,t2和t1分别表示相邻数据包的响应时间,s2和s1分别表示相邻数据包的数据包大小;
25、对所述数据包分组内的多个相邻数据包对应的平均值进行平均计算,得到所述动态参数的响应时间系数。
26、在一些实施例中,所述预设限流策略,包括:
27、获取当前设备负载;
28、判断所述当前设备负载是否超过动态负载阈值;
29、若是,对请求头的条数设置第一限流阈值和/或对请求的数据包长度设置第二限流阈值;
30、若否,对请求头的条数设置第三限流阈值;其中,第三限流阈值大于所述第一限流阈值。
31、在一些实施例中,所述动态负载阈值通过以下方式确定:
32、获取历史设备负载;
33、基于所述当前设备负载和所述历史设备负载,通过以下公式确定所述动态负载阈值;
34、
35、其中,l为所述动态负载阈值,l0为初始限流阈值,c1为所述当前设备负载,c2为历史设备负载的平均值,α为历史设备负载的权重系数,c3为初始负载阈值。
36、第二方面,本申请提供了一种基于请求头的业务限流装置,所述装置包括:
37、数据包参数分析模块,用于基于历史请求数据进行数据包参数分析,确定数据分析结果;其中,数据分析结果包括请求数据包的大小分布;
38、动态参数分析模块,用于基于所述数据分析结果进行动态参数分析,确定估计动态参数数量和估计动态参数资源消耗;
39、数据长度确定模块,用于基于所述估计动态参数数量和估计动态参数资源消耗,确定单个最小单元参数数据长度;
40、数据包数量估计模块,用于基于不同数据接口的所述请求数据包的大小分布,估计不同接口请求数据参数的数量;
41、数据包大小估计模块,用于基于所述不同接口请求数据参数的数量,确定每个请求对应的业务参数数据包大小;
42、数据包大小确定模块,用于在接收到业务请求时,基于所述每个请求对应的业务参数数据包大小,确定所述业务请求对应的最小单元业务参数数据包大小;
43、限流模块,用于根据预设限流策略和所述最小单元业务参数数据包大小,确定是否对所述业务请求进行限流。
44、第三方面,提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
45、存储器,用于存放计算机程序;
46、处理器,用于执行存储器上所存放的程序时,实现第一方面任一项实施例所述的基于请求头的业务限流方法的步骤。
47、第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面任一项实施例所述的基于请求头的业务限流方法的步骤。
48、本申请实施例提供的上述技术方案与现有技术相比具有如下优点:本申请提供的基于请求头的动态业务限流方法,通过分析历史请求数据及请求头数据中的动态参数,确定请求数据包的大小分布及资源消耗,进而进行实时限流策略的动态调整,从而有效地管理不同业务请求的流量,提高了网络资源的利用率,优化资源分配,避免因瞬时高流量导致的服务崩溃或用户体验下降。
本文档来自技高网...【技术保护点】
1.一种基于请求头的业务限流方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,基于所述估计动态参数数量和估计动态参数资源消耗,确定单个最小单元参数数据长度,包括:
3.根据权利要求2所述的方法,其特征在于,所述基于所述最小单元数据包的请求响应时间和资源消耗,确定所述单个最小单元参数数据长度,包括:
4.根据权利要求3所述的方法,其特征在于,所述基于所述动态参数的响应时间系数、所述最小单元数据包的请求响应时间和资源消耗,确定所述单个最小单元参数数据长度,包括:
5.根据权利要求3所述的方法,其特征在于,所述获取动态参数的响应时间系数,包括:
6.根据权利要求1所述的方法,其特征在于,所述预设限流策略,包括:
7.根据权利要求6所述的方法,其特征在于,所述动态负载阈值通过以下方式确定:
8.一种基于请求头的业务限流装置,其特征在于,所述装置包括:
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7任一项所述的基于请求头的业务限流方法的步骤。
...【技术特征摘要】
1.一种基于请求头的业务限流方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,基于所述估计动态参数数量和估计动态参数资源消耗,确定单个最小单元参数数据长度,包括:
3.根据权利要求2所述的方法,其特征在于,所述基于所述最小单元数据包的请求响应时间和资源消耗,确定所述单个最小单元参数数据长度,包括:
4.根据权利要求3所述的方法,其特征在于,所述基于所述动态参数的响应时间系数、所述最小单元数据包的请求响应时间和资源消耗,确定所述单个最小单元参数数据长度,包括:
5.根据权利要求3所述的方法,其特征在于,所述获取...
【专利技术属性】
技术研发人员:金真,吴维略,龚振,严浩淼,
申请(专利权)人:深圳市道旅旅游科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。