本发明涉及数据处理,尤其涉及一种请求限流控制方法、装置、设备及存储介质。
背景技术:
1、如今,一般会通过配置固定的流量阈值来对用户发起的业务请求进行限流,以防止访问流量过大导致服务器的系统崩溃,但是,由于限流方式比较单一,无法有效的应对复杂的业务场景,达不到复杂业务场景高效限流的要求,限流效果不佳。
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、可选的,所述根据所述当前时间窗口、所述被请求方的处理能力值及所述初始积分增加程度确定当前积分增加程度的步骤,包括:
25、获取所述当前时间窗口对应的时间窗口宽度,并查找所述被请求方的处理能力值对应的衰减系数;
26、根据所述时间窗口宽度、所述衰减系数及所述初始积分增加程度确定当前积分增加程度。
27、可选的,所述获取目标请求对应的时间窗口序列、状态码及被请求方的步骤,包括:
28、获取所述目标请求对应的业务场景类型、状态码及被请求方;
29、查找所述业务场景类型对应的时间窗口个数;
30、根据所述时间窗口个数查找可用时间窗口,获得多个时间窗口;
31、依据对应的窗口时间区间对所述多个时间窗口进行排序,获得所述目标请求对应的时间窗口序列。
32、此外,为实现上述目的,本发明还提出一种请求限流控制装置,所述请求限流控制装置包括以下模块:
33、获取模块,用于获取目标请求对应的时间窗口序列、状态码及被请求方;
34、选取模块,用于从所述时间窗口序列中选取当前时间窗口;
35、确定模块,用于根据所述状态码及所述被请求方确定所述当前时间窗口对应的限流积分值;
36、控制模块,用于若所述限流积分值大于预设限流阈值,则不对所述目标请求进行限流。
37、此外,为实现上述目的,本发明还提出一种请求限流控制设备,所述请求限流控制设备包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的请求限流控制程序,所述请求限流控制程序被处理器执行时实现如上所述的请求限流控制方法的步骤。
38、此外,为实现上述目的,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有请求限流控制程序,所述请求限流控制程序执行时实现如上所述的请求限流控制方法的步骤。
39、本发明通过获取目标请求对应的时间窗口序列、状态码及被请求方;从时间窗口序列中选取当前时间窗口;根据状态码及被请求方确定当前时间窗口对应的限流积分值;若限流积分值大于预设限流阈值,则不对目标请求进行限流。由于本发明是通过根据目标请求对应的状态码、被请求方等数据计算当前时间窗口对应的限流积分值,通过将可表征被请求方在当前时间窗口中处理该目标请求的能力的限流积分值与预设限流阈值进行比较,以此判断是否对目标请求进行限流,保证限流判断符合复杂的业务场景的实际需求,保证了面对复杂的业务场景,依旧可以取得较好的限流效果。
1.一种请求限流控制方法,其特征在于,所述请求限流控制方法包括以下步骤:
2.如权利要求1所述的请求限流控制方法,其特征在于,所述根据所述状态码及所述被请求方确定所述当前时间窗口对应的积分值的步骤之后,还包括:
3.如权利要求1所述的请求限流控制方法,其特征在于,所述根据所述状态码及所述被请求方确定所述当前时间窗口对应的积分值的步骤,包括:
4.如权利要求3所述的请求限流控制方法,其特征在于,所述获取所述目标请求对应的基础积分值的步骤,包括:
5.如权利要求3所述的请求限流控制方法,其特征在于,所述检测所述当前时间窗口是否为所述时间窗口序列中的首个序列元素的步骤之后,还包括:
6.如权利要求5所述的请求限流控制方法,其特征在于,所述根据所述当前时间窗口、所述被请求方的处理能力值及所述初始积分增加程度确定当前积分增加程度的步骤,包括:
7.如权利要求1-6任一项所述请求限流控制方法,其特征在于,所述获取目标请求对应的时间窗口序列、状态码及被请求方的步骤,包括:
8.一种请求限流控制装置,其特征在于,所述请求限流控制装置包括以下模块:
9.一种请求限流控制设备,其特征在于,所述请求限流控制设备包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的请求限流控制程序,所述请求限流控制程序被处理器执行时实现如权利要求1-7中任一项所述的请求限流控制方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有请求限流控制程序,所述请求限流控制程序执行时实现如权利要求1-7中任一项所述的请求限流控制方法的步骤。