一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种请求处理方法、装置、设备及存储介质与流程

2021-12-15 02:42:00 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,特别涉及一种请求处理方法、装置、设备及存储介质。


背景技术:

2.随着互联网行业的高速发展,人们与网络的关系越来越紧密,依赖性也越来越高,越来越多的人开始接受并使用网络来作为日常的工具,如网上购物、在线支付、在线办公等。网民数量高速增长,提供服务的厂商压力越来越大,尤其是比较流行的电商网站对系统限流的需求越来越高。随着电商狂欢节的大力发展,对电商网站的性能需求越来越高,尤其对于618、双11这种购物狂欢节,动辄几千万上亿的qps,横向扩展已经无法满足需求。不只是正常的访问需求,很多系统的请求其实是来自爬虫、恶意攻击等,对于这种非正常请求,更是迫切的需要在请求的前期就进行拦截,不对正常的业务产生影响。
3.传统的限流方案多为单方法限流,无法做到对系统的保护,只是出于对业务的需求;规则无法进行动态配置,规则改进需要对后台服务进行升级;效率低下,在流量峰值时可能对正常的系统业务产生影响;无动态黑白名单功能。因此,如何提供一种高效、精确的限流方案是本领域技术人员亟待解决的技术问题。


技术实现要素:

4.有鉴于此,本发明的目的在于提供一种请求处理方法、装置、设备及存储介质,能够提高系统流量控制效率和精度。其具体方案如下:
5.本技术的第一方面提供了一种请求处理方法,包括:
6.获取前端请求数据,并对所述前端请求数据进行过滤处理,以从所述前端请求数据中得到有效的第一请求数据;
7.基于redis的hash数据结构利用滑动窗口算法对所述第一请求数据进行流量控制,以得到第二请求数据;
8.基于预设规则通过可视化配置界面对前端请求的黑白名单进行配置得到第一黑白名单,并利用所述第一黑白名单对所述第二请求数据进行匹配得到被放行的第三请求数据。
9.可选的,所述对所述前端请求数据进行过滤处理,以从所述前端请求数据中得到有效的第一请求数据,包括:
10.利用过滤器和/或拦截器对所述前端请求数据进行过滤处理,以从所述前端请求数据中得到有效的第一请求数据。
11.可选的,所述基于预设规则通过可视化配置界面对前端请求的黑白名单进行配置得到第一黑白名单,包括:
12.对所述前端请求数据进行解析,并根据解析后的所述前端请求数据的特征信息基于预设规则通过可视化配置界面对前端请求的黑白名单进行动态配置得到第一黑白名单。
13.可选的,所述利用所述第一黑白名单对所述第二请求数据进行匹配得到被放行的第三请求数据之后,还包括:
14.对利用所述第一黑白名单对所述第二请求数据进行匹配得到的被拦截的第四请求数据进行告警,以便通过人机交互界面对所述第四请求数据进行验证。
15.可选的,所述利用所述第一黑白名单对所述第二请求数据进行匹配得到被放行的第三请求数据之后,还包括:
16.通过可视化配置界面对后端资源的访问控制信息进行配置,并利用配置后的后端资源对所述第三请求数据进行响应。
17.可选的,所述通过可视化配置界面对后端资源的访问控制信息进行配置,并利用配置后的后端资源对所述第三请求数据进行响应,包括:
18.通过可视化配置界面对后端资源的黑白名单进行配置得到第二黑白名单,并利用所述第二黑白名单对所述第三请求数据请求访问的资源进行访问控制。
19.可选的,所述通过可视化配置界面对后端资源的访问控制信息进行配置,并利用配置后的后端资源对所述第三请求数据进行响应,包括:
20.通过可视化配置界面对后端资源的被访问次数进行配置,以利用配置后的后端资源基于redis的hash数据结构通过固定时间窗口算法对所述第三请求数据进行响应。
21.本技术的第二方面提供了一种请求处理装置,包括:
22.第一处理模块,用于获取前端请求数据,并对所述前端请求数据进行过滤处理,以从所述前端请求数据中得到有效的第一请求数据;
23.第二处理模块,用于基于redis的hash数据结构利用滑动窗口算法对所述第一请求数据进行流量控制,以得到第二请求数据;
24.第三处理模块,用于基于预设规则通过可视化配置界面对前端请求的黑白名单进行配置得到第一黑白名单,并利用所述第一黑白名单对所述第二请求数据进行匹配得到被放行的第三请求数据。
25.本技术的第三方面提供了一种电子设备,所述电子设备包括处理器和存储器;其中所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现前述请求处理方法。
26.本技术的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现前述请求处理方法。
27.本技术中,先获取前端请求数据,并对所述前端请求数据进行过滤处理,以从所述前端请求数据中得到有效的第一请求数据;然后基于redis的hash数据结构利用滑动窗口算法对所述第一请求数据进行流量控制,以得到第二请求数据;最后基于预设规则通过可视化配置界面对前端请求的黑白名单进行配置得到第一黑白名单,并利用所述第一黑白名单对所述第二请求数据进行匹配得到被放行的第三请求数据。可见,本技术先对获取到的前端请求数据进行过滤处理得到有效的第一请求数据,然后再基于redis的hash数据结构利用滑动窗口算法对第一请求数据进行流量控制得到第二请求数据,最后利用可视化配置生成的黑白名单对第二请求数据匹配拦截恶意请求,提高系统流量控制效率和精度。
附图说明
28.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
29.图1为本技术提供的一种请求处理方法流程图;
30.图2为本技术提供的一种正常的流量处理过程方法示意图;
31.图3为本技术提供的一种流量过滤过程示意图;
32.图4为本技术提供的一种通过滑动窗口进行流量控制过程示意图;
33.图5为本技术提供的一种第三请求数据获取过程流程图;
34.图6为本技术提供的一种具体的请求处理方法示意图;
35.图7为本技术提供的一种请求处理装置结构示意图;
36.图8为本技术提供的一种请求处理电子设备结构图。
具体实施方式
37.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
38.传统的限流方案多为单方法限流,无法做到对系统的保护,只是出于对业务的需求;规则无法进行动态配置,规则改进需要对后台服务进行升级;效率低下,在流量峰值时可能对正常的系统业务产生影响;无动态黑白名单功能。针对上述技术缺陷,本技术先对获取到的前端请求数据进行过滤处理得到有效的第一请求数据,然后再基于redis的hash数据结构利用滑动窗口算法对第一请求数据进行流量控制得到第二请求数据,最后利用可视化配置生成的黑白名单对第二请求数据匹配拦截恶意请求,提高系统流量控制效率和精度。
39.图1为本技术实施例提供的一种请求处理方法流程图。参见图1所示,该请求处理方法包括:
40.s11:获取前端请求数据,并对所述前端请求数据进行过滤处理,以从所述前端请求数据中得到有效的第一请求数据。
41.本实施例中,获取前端请求数据,并对所述前端请求数据进行过滤处理,以从所述前端请求数据中得到有效的第一请求数据。图2所示为正常的流量进入服务器的过程,前端http请求通过浏览器等客户端设备经由网关进入服务器后台。本实施例在获取到前端的请求数据后,首先利用过滤器和/或拦截器对所述前端请求数据进行过滤处理,以从所述前端请求数据中得到有效的第一请求数据。具体如图3所示,http请求在进入controller层之前先经过过滤器、拦截器,在这个位置对前端流量进行过滤处理,不符合要求的、非法的、无效的、未被允许的请求统统在这个位置被拦截,保证了系统服务的正常运行。
42.s12:基于redis的hash数据结构利用滑动窗口算法对所述第一请求数据进行流量控制,以得到第二请求数据。
43.本实施例中,基于redis的hash数据结构利用滑动窗口算法对所述第一请求数据进行流量控制,以得到第二请求数据。借助redis中间件对系统进行了限流,同时利用滑动的时间窗口进行计数,通过使用redis,即节省了系统内存,又大大提高了流控的效率,保护了系统,使其能正常高效的运行,对外提供服务。如图4所示。流量控制的原理就是采用redis的hash作为数据结构来存储用户(包含爬虫等非人用户)访问服务的访问数据,可以包含一些客户端的基本信息,如最主要的客户端ip、浏览器、用户操作系统等。hash的key使用ip的字符串,hash的value则使用用户当前访问系统的时间毫秒值,(key,value)示例为(“10.50.2.101”,1618216700720)。这组(key,value)数据就是一个有效的访问请求,而统计的关键在于对当前ip访问系统的次数或频率的计算。从本次访问系统的时间向前推算一定的时间间隔,而这个时间间隔本质上是一个滑动的时间窗口,因为每次都会从当前时间重新计算开始时间和结束时间。统计这段时间内该用户访问的次数是否超过系统规定阈值,如果小于阈值,则正常请求系统,否则,将该次请求视为非法请求,直接返回并提示用户。这个时间间隔是由系统来规定的,它和阈值(访问次数限制)构成一对有效配置,如:10s:10次、30s:100次等。
44.s13:基于预设规则通过可视化配置界面对前端请求的黑白名单进行配置得到第一黑白名单,并利用所述第一黑白名单对所述第二请求数据进行匹配得到被放行的第三请求数据。
45.本实施例中,基于预设规则通过可视化配置界面对前端请求的黑白名单进行配置得到第一黑白名单,并利用所述第一黑白名单对所述第二请求数据进行匹配得到被放行的第三请求数据。对于一些请求,系统根本不允许它进入后台,所以仅靠基础流量控制还不能满足需求,此时可以采用黑白名单来控制,如图5所示。不难理解,黑名单为不允许访问系统的规则,白名单为不控制流量的规则。对所述前端请求数据进行解析,并根据解析后的所述前端请求数据的特征信息基于预设规则通过可视化配置界面对前端请求的黑白名单进行动态配置得到第一黑白名单。其中,所述预设规则可以是一些由客户端ip、浏览器、其他信息等组成的复杂的条件表达式。甚至更灵活的配置是由访问的数据来动态生成黑白名单,比如根据某段时间内的访问次数来分析是否为恶意攻击等将其置入黑名单,可以限制其某段时间内无法访问,或者永久无法访问,这种控制可以根据需求灵活添加。本技术实施例通过可视化的控制界面对前端请求进行了三个层次的控制,使用简单高效,对系统影响极小,动态规则配置,可支持复杂的规则模型,规则可视化,配合黑白名单等进行配置对系统进行有效的保护。同时有效解决了通过对单个接口进行流量限制,无法缓解系统整体压力的弊端。
46.可见,本技术实施例先获取前端请求数据,并对所述前端请求数据进行过滤处理,以从所述前端请求数据中得到有效的第一请求数据;然后基于redis的hash数据结构利用滑动窗口算法对所述第一请求数据进行流量控制,以得到第二请求数据;最后基于预设规则通过可视化配置界面对前端请求的黑白名单进行配置得到第一黑白名单,并利用所述第一黑白名单对所述第二请求数据进行匹配得到被放行的第三请求数据。本技术实施例先对获取到的前端请求数据进行过滤处理得到有效的第一请求数据,然后再基于redis的hash数据结构利用滑动窗口算法对第一请求数据进行流量控制得到第二请求数据,最后利用可视化配置生成的黑白名单对第二请求数据匹配拦截恶意请求,提高系统流量控制效率和精
度。
47.图6为本技术实施例提供的一种具体的请求处理方法流程图。参见图6所示,该请求处理方法包括:
48.s21:获取前端请求数据,并对所述前端请求数据进行过滤处理,以从所述前端请求数据中得到有效的第一请求数据。
49.s22:基于redis的hash数据结构利用滑动窗口算法对所述第一请求数据进行流量控制,以得到第二请求数据。
50.s23:基于预设规则通过可视化配置界面对前端请求的黑白名单进行配置得到第一黑白名单,并利用所述第一黑白名单对所述第二请求数据进行匹配得到被放行的第三请求数据。
51.本实施例中,关于上述步骤s21至s23的具体过程,可以参考前述实施例中公开的相应内容,在此不再进行赘述。
52.s24:对利用所述第一黑白名单对所述第二请求数据进行匹配得到的被拦截的第四请求数据进行告警,以便通过人机交互界面对所述第四请求数据进行验证。
53.本实施例中,在得到最终被放行的所述第三请求数据后,加入了人为干预的因素,对利用所述第一黑白名单对所述第二请求数据进行匹配得到的被拦截的第四请求数据进行告警,以便通过人机交互界面对所述第四请求数据进行验证。也即动态的黑白名单可以通过告警等转向人工处理,例如可以对某个ip禁止访问的时间进行人为的干预等。同时,为了使本方案使用更加方便,可以将所有的配置,如:黑白名单、访问频率的模型、资源控制等等进行前端的可视化。
54.s25:通过可视化配置界面对后端资源的访问控制信息进行配置,并利用配置后的后端资源对所述第三请求数据进行响应。
55.本实施例中,通过可视化配置界面对后端资源的访问控制信息进行配置,并利用配置后的后端资源对所述第三请求数据进行响应。在一种实施例中,通过可视化配置界面对后端资源的黑白名单进行配置得到第二黑白名单,并利用所述第二黑白名单对所述第三请求数据请求访问的资源进行访问控制。在另一种实施例中,通过可视化配置界面对后端资源的被访问次数进行配置,以利用配置后的后端资源基于redis的hash数据结构通过固定时间窗口算法对所述第三请求数据进行响应。使用redis的hash数据结构,利用操作的原子性保证数据的正确性,同时巧妙的利用固定时间窗口这一原理,使计算的过程尽量简洁,来达到高效的流量过滤的目的。
56.上述步骤将原本只针对用户维度的限流措施进行了拓展,将资源也定义为一种限流的策略。某些情况下对于后端资源的控制不一定是全盘的,可能有些资源根本不需要控制,或者对资源控制的等级要求不同,这时可以加入对资源进行控制的逻辑,比如资源黑白名单,资源的形式可以由后端controller接口的路径来规定。滑动窗口从访问次数维度对接口进行了流量控制,但这种控制比较机械,基本等于一刀切,不能满足所有需求,对于有些服务或资源,系统会限制每个用户在有限的时间内访问有限次,如系统登录短信,每天可接收5条这种需求。此时可通过资源

用户

访问次数进行配置化的资源控制。数据结构依然是hash,数据表达方式:hash的key为资源路径:如/api/xxx,键值对:(“userid1”,1),key为用户id,值为规定时间内已访问次数。此时运用的便不再是滑动时间窗口,而是采用固定时
间刷新的策略,例如限制当天时间为00:00:00

23:59:59,到第二天00:00:00时自动进行数据重置。
57.可见,本技术实施例基于redis的系统流量控制方法,通过全局的过滤器对系统请求进行拦截,并通过分析请求来获取关键参数,通过不同的配置对系统进行流量保护,将恶意和非有效请求提前拦截,保护系统正常运行。同时通过对被拦截的第四请求数据进行告警,以便通过人机交互界面对所述第四请求数据进行验证,以转向人工处理,减低误检率。
58.参见图7所示,本技术实施例还相应公开了一种请求处理装置,包括:
59.第一处理模块11,用于获取前端请求数据,并对所述前端请求数据进行过滤处理,以从所述前端请求数据中得到有效的第一请求数据;
60.第二处理模块12,用于基于redis的hash数据结构利用滑动窗口算法对所述第一请求数据进行流量控制,以得到第二请求数据;
61.第三处理模块13,用于基于预设规则通过可视化配置界面对前端请求的黑白名单进行配置得到第一黑白名单,并利用所述第一黑白名单对所述第二请求数据进行匹配得到被放行的第三请求数据。
62.可见,本技术实施例先获取前端请求数据,并对所述前端请求数据进行过滤处理,以从所述前端请求数据中得到有效的第一请求数据;然后基于redis的hash数据结构利用滑动窗口算法对所述第一请求数据进行流量控制,以得到第二请求数据;最后基于预设规则通过可视化配置界面对前端请求的黑白名单进行配置得到第一黑白名单,并利用所述第一黑白名单对所述第二请求数据进行匹配得到被放行的第三请求数据。本技术实施例先对获取到的前端请求数据进行过滤处理得到有效的第一请求数据,然后再基于redis的hash数据结构利用滑动窗口算法对第一请求数据进行流量控制得到第二请求数据,最后利用可视化配置生成的黑白名单对第二请求数据匹配拦截恶意请求,提高系统流量控制效率和精度。
63.在一些具体实施例中,所述第一处理模块11,具体用于利用过滤器和/或拦截器对所述前端请求数据进行过滤处理,以从所述前端请求数据中得到有效的第一请求数据。
64.在一些具体实施例中,所述第三处理模块13,具体包括:
65.动态配置单元,用于对所述前端请求数据进行解析,并根据解析后的所述前端请求数据的特征信息基于预设规则通过可视化配置界面对前端请求的黑白名单进行动态配置得到第一黑白名单;
66.匹配单元,用于利用所述第一黑白名单对所述第二请求数据进行匹配得到被放行的第三请求数据。
67.在一些具体实施例中,所述请求处理装置还包括:
68.告警模块,用于对利用所述第一黑白名单对所述第二请求数据进行匹配得到的被拦截的第四请求数据进行告警,以便通过人机交互界面对所述第四请求数据进行验证;
69.响应模块,用于通过可视化配置界面对后端资源的访问控制信息进行配置,并利用配置后的后端资源对所述第三请求数据进行响应;
70.相应的,所述响应模块具体包括第一响应单元和第二响应单元,其中:
71.所述第一响应单元,用于通过可视化配置界面对后端资源的黑白名单进行配置得到第二黑白名单,并利用所述第二黑白名单对所述第三请求数据请求访问的资源进行访问
控制;
72.所述第二响应单元,用于通过可视化配置界面对后端资源的被访问次数进行配置,以利用配置后的后端资源基于redis的hash数据结构通过固定时间窗口算法对所述第三请求数据进行响应。
73.进一步的,本技术实施例还提供了一种电子设备。图8是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本技术的使用范围的任何限制。
74.图8为本技术实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的请求处理方法中的相关步骤。
75.本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本技术技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
76.另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222及数据223等,存储方式可以是短暂存储或者永久存储。
77.其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是windows server、netware、unix、linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的请求处理方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据223可以包括电子设备20收集到的前端请求数据。
78.进一步的,本技术实施例还公开了一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,实现前述任一实施例公开的请求处理方法步骤。
79.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
80.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
…”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
81.以上对本发明所提供的请求处理方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于
帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献