业务请求处理方法、装置、电子设备及存储介质与流程

专利2023-05-17  96



1.本技术涉及数据处理技术领域,具体涉及一种业务请求处理方法、装置、电子设备及存储介质。


背景技术:

2.随着互联网技术的快速发展,各种互联网平台例如电子商务平台等越来越多。当互联网平台系统的业务量达到一定规模之后,访问平台系统的用户越来越多,业务请求量暴增会导致平台系统服务器产生运行缓慢或宕机的状况,严重影响业务运营,例如电子商务平台在举行各种促销活动时会有大量用户申请访问平台系统进行抢购,这种情况下业务请求量就会剧增,这种情况就需要进行业务限流处理。当前的业务限流处理技术方案无法满足业务请求的限流需求,当前亟待研发一种进行业务请求处理的技术方案,以解决业务请求量过大导致服务器运行缓慢或宕机的问题。


技术实现要素:

3.本技术的目的是提供一种业务请求处理方法、装置、电子设备及存储介质。为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。
4.根据本技术实施例的一个方面,提供一种业务请求处理方法,所述方法包括:
5.针对预设时长内接收的多个业务请求,提取每个所述业务请求的对应信息;
6.将符合限流条件的业务请求按照时间顺序存入所述限流条件对应的线性存储结构中;所述限流条件与所述对应信息相对应;
7.为各线性存储结构中的所述业务请求分配由令牌产生模块所产生的令牌,每一所述线性存储结构对应设置有一个所述令牌产生模块;
8.对获得由每一所述令牌产生模块所产生的令牌的业务请求进行处理。
9.根据本技术实施例的另一个方面,提供一种业务请求处理装置,包括:
10.提取模块,用于针对预设时长内接收的多个业务请求,提取每个所述业务请求的对应信息;
11.存储模块,用于将符合限流条件的业务请求按照时间顺序存入所述限流条件对应的线性存储结构中;所述限流条件与所述对应信息相对应;
12.分配模块,用于为各线性存储结构中的所述业务请求分配由令牌产生模块所产生的令牌,每一所述线性存储结构对应设置有一个所述令牌产生模块;
13.处理模块,用于对获得由每一所述令牌产生模块所产生的令牌的业务请求进行处理。
14.根据本技术实施例的另一个方面,提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序,以实
现上述任一项所述的业务请求处理方法。
15.根据本技术实施例的另一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行,以实现上述任一项所述的业务请求处理方法。
16.本技术实施例的其中一个方面提供的技术方案可以包括以下有益效果:
17.本技术实施例提供的业务请求处理方法,针对预设时长内接收的多个业务请求,提取每个所述业务请求的对应信息,将符合限流条件的业务请求按照时间顺序存入所述限流条件对应的线性存储结构中,为各线性存储结构中的所述业务请求分配由令牌产生模块所产生的令牌,对获得由每一所述令牌产生模块所产生的令牌的业务请求进行处理,能够解决业务请求量过大导致服务器运行缓慢或宕机的问题,满足业务请求的限流需求。
18.本技术的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者,部分特征和优点可以从说明书中推知或毫无疑义地确定,或者通过实施本技术实施例了解。
附图说明
19.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
20.图1示出了本技术实施例的业务请求处理方法的应用环境示意图;
21.图2示出了本技术一些实施方式的业务请求处理方法流程图;
22.图3示出了本技术一些实施方式中令牌产生模块产生令牌的过程的流程图;
23.图4示出了本技术一些实施方式的业务限流装置结构框图;
24.图5示出了本技术一个实施例的电子设备结构框图;
25.图6示出了本技术另一个实施例的计算机可读存储介质的示意图。
26.本技术的目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
27.为了使本技术的目的、技术方案及优点更加清楚明白,下面结合附图和具体实施例对本技术做进一步说明。应当理解,此处所描述的具体实施例仅用以解释本技术,并不用于限定本技术。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
28.本领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本技术所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
29.本技术提供的业务请求处理方法,可应用在如图1的应用环境中,其中,用户终端通过互联网与服务器端进行通信。服务器端可以接收用户终端发送的业务请求,对业务请求进行处理,实现限流。其中,用户终端可以但不限于各种个人计算机、笔记本电脑、智能手
机、平板电脑和便携式可穿戴设备。服务器端可以用独立的服务器或者是多个服务器组成的服务器集群来实现。下面通过具体的实施例对本技术进行详细的描述。
30.如图2所示,本技术的一个实施例提供了一种业务请求处理方法,应用于服务器,该方法包括:
31.s10、针对预设时长内接收的多个业务请求,提取每个业务请求的对应信息。
32.具体地,对应信息可以包括第一账号信息、业务类别、互联网协议地址、请求路径及服务类别等。业务请求可以简称为请求。预设时长内接收的多个业务请求可以简称为前述业务请求。
33.服务器在一个预设时长(例如,3秒内、6秒内或8秒内等)内接收到多个业务请求。当一个预设时长内的请求量过大时,为避免服务器崩溃或运行速度过慢,需要对业务请求进行限流。
34.以购物平台为例,业务类别包括限时抢购、日常购物等,互联网协议地址为请求发送端设备的互联网协议地址,请求路径代表了购物平台的业务逻辑,例如,请求路径http://120.0.0.1/gmy-scloud/queryusers代表查询用户信息,请求路径http://120.0.0.1/gmy-scloud/querymenus代表查询菜单信息。
35.服务类别包括用户服务、商品服务、订单服务等,用户服务包括用户注册及用户登录,商品服务包括商品录入及商品查询,订单服务包括订单生成、订单查询及订单打印。
36.s20、将符合限流条件的业务请求按照时间顺序存入该限流条件对应的线性存储结构中。
37.该限流条件与该对应信息相对应;线性存储结构例如可以是队列、数组、链表、栈等线性表或者其他类别的结构。
38.分别获取该业务类别、互联网协议地址、请求路径及服务类别对应的限流条件,将前述业务请求中符合对应限流条件的请求按照时间戳顺序存入对应限流条件对应的线性存储结构中。
39.不同于现有技术以系统为维度对整个系统的所有请求进行限流,本实施例分别以业务类别、互联网协议地址、请求路径及服务类别为维度进行更精确的限流。
40.每个维度对应一个限流条件,例如,对于业务类别维度,对其中特定业务类别进行限流;对于互联网协议地址维度,对恶意用户的互联网协议地址进行限流;对于请求路径维度,对其中逻辑复杂的请求路径进行限流;对于服务类别维度,根据服务类别对应的服务器能承受的请求数量对各种服务类别的请求进行限流。
41.获取到每个维度对应的限流条件后,将业务请求中符合对应限流条件的请求按照时间戳顺序存入对应限流条件对应的线性存储结构中,该时间戳可以是系统收到请求的时间。存入线性存储结构后,可能会出现一个请求出现在四个线性存储结构的情况,也可能出现一个请求仅出现在其中两个线性存储结构的情况。
42.在一些实施方式中,步骤s20可以包括步骤s201至s204:
43.s201、确定前述业务请求中是否包含有预设业务类别的请求,如果包含有预设业务类别的请求,则获取该预设业务类别对应的第一限流数目,按照时间戳顺序将前述业务请求中排序靠前的第一限流数目的预设业务类别的请求和其它业务类别的请求存入第一线性存储结构。
44.例如,预设业务类别可以为限时抢购,该第一限流数目为限时抢购的物品的数量,如果共有1500个业务请求,其中限时抢购请求有1000个,日常购物请求有500个,如果只有600个商品被用来秒杀,则将1000个限时抢购请求中时间戳在前面的600个请求和500个日常购物请求存入第一线性存储结构中,第一线性存储结构中的请求以时间戳排序。可以将超出限时抢购物品数量的限时抢购请求丢弃,以降低系统压力。
45.s202、根据互联网协议地址确定前述业务请求中是否包含有异常请求,如果有,将前述业务请求中不是异常请求的请求按照时间戳顺序存入第二线性存储结构。
46.在一些实施方式中,该异常请求为恶意用户、爬虫机器人及自动发请求的机器人发送的请求,将业务请求中不属于异常请求的请求存入第二线性存储结构,第二线性存储结构中的请求以时间戳顺序排序。
47.s203、根据请求路径确定前述业务请求中每个请求的复杂程度级别,基于该复杂程度级别将前述业务请求存入第三线性存储结构。
48.一个请求路径对应一个业务逻辑,业务逻辑复杂的请求运算的时间更久、耗费的资源更多,如果业务请求中包含有大量业务逻辑复杂的请求,则会压缩分配给其他请求的资源,可能会出现系统崩溃或其他请求等待时间过久的情况,为平衡系统资源,需要对复杂度高的请求进行限流。
49.该根据请求路径确定前述业务请求中每个请求的复杂程度级别,包括步骤(1)-步骤(2):
50.步骤(1)、获取第一时段内每个请求路径对应的多个历史响应耗时,基于该多个历史响应耗时计算每个请求路径对应的平均响应耗时;
51.该第二时段可以是最近6个月,可以获取最近6个月内每个请求路径对应的多个历史响应耗时,进而可计算得出每个请求路径对应的平均响应耗时。
52.步骤(2)、基于该平均响应耗时及预设的响应耗时与复杂程度级别的映射关系确定每个请求路径对应的复杂程度级别。
53.响应耗时与请求的复杂程度成正比,请求的复杂程度越高,响应耗时越长。
54.在一些实施方式中,预设的响应耗时(单位为秒)与复杂程度的映射关系可以如下所示:
55.响应耗时属于区间(6,+∞),即响应耗时大于6s,则对应的复杂程度为高级别复杂程度;
56.响应耗时属于区间[2,6],即响应耗时大于或等于2s并且小于或等于6s,则对应的复杂程度为中级别复杂程度;
[0057]
响应耗时属于区间[0,2),即响应耗时大于或等于0并且小于2s,则对应的复杂程度为低级别复杂程度。
[0058]
该基于该复杂程度级别将前述业务请求存入第三线性存储结构,包括步骤s01至步骤s03:
[0059]
s01、确定前述业务请求中各个复杂程度级别的请求的数量;
[0060]
例如,如果业务请求中共1500个请求,根据上述响应耗时与复杂度的映射关系可确定,其中高级别复杂程度的请求有800个,中级别复杂程度的请求有400个,低级别复杂程度的请求有300个。
[0061]
s02、根据该数量及预先确定的各个复杂程度级别对应的权重计算各个复杂程度级别对应的第三限流数目;
[0062]
如果高级别复杂程度、中级别复杂程度及低级别复杂程度对应的权重分别为10%、30%、60%,则高级别复杂程度对应的第三限流数目为800*10%=80,中级别复杂程度对应的第三限流数目为400*30%=120,低级别复杂程度对应的第三限流数目为300*60%=180。
[0063]
s03、按照时间戳顺序将前述业务请求中各个复杂程度级别对应的排序靠前的第三限流数目的请求存入第三线性存储结构。
[0064]
将高级别复杂程度请求中前80个请求、中级别复杂程度请求中前120个请求及低级别复杂程度请求中前180个请求存入第三线性存储结构,第三线性存储结构中的380个请求按照时间戳顺序排序。
[0065]
s204、获取各个服务类别对应的第二限流数目,按照时间戳顺序将前述业务请求中各个服务类别对应的排序靠前的第二限流数目的请求存入第四线性存储结构。
[0066]
服务类别包括用户服务、商品服务及订单服务,不同的服务运行在服务器集群的不同服务器中,不同的服务器因资源不同,能处理的请求数量是不同的,该第二限流数目为各个服务类别对应的服务器能处理的请求的数量。
[0067]
例如,如果用户服务、商品服务及订单服务对应的第二限流数目分别为100、40、35,业务请求中用户服务、商品服务及订单服务对应的请求数量分别为60、50、40,则将60个用户服务、时间戳在前的前40个商品服务及前35个订单服务对应的请求存入第四线性存储结构,第四线性存储结构中的135个请求以时间戳顺序排序。
[0068]
在步骤s202中,该根据互联网协议地址确定前述业务请求中是否包含有异常请求,包括:
[0069]
如果某一目标互联网协议地址在第二时段内发送请求的数量大于预设阈值,则确定前述业务请求中该目标互联网协议地址发送的请求为异常请求。目标互联网协议地址也可以称为指定互联网协议地址。
[0070]
如果某一互联网协议地址在短时间内发送大量请求(也可以是在短时间内浏览了多个不同页面),则这个互联网协议地址对应的用户属于恶意用户,该恶意用户可能使用爬虫程序或自动发请求的程序制造了大量请求,需要拒绝该类请求。
[0071]
s30、为各线性存储结构中的前述业务请求分配由令牌产生模块所产生的令牌,每一该线性存储结构对应设置有一个该令牌产生模块。
[0072]
具体地,预先为每个线性存储结构分配一个令牌产生模块,该令牌产生模块用于以恒定速率产生令牌。
[0073]
在一些实施方式中,该令牌产生模块可以为令牌桶,令牌桶以恒定的速率生成令牌,令牌桶中可存放的令牌的数量是固定值,取得令牌的请求才能被处理,如果令牌桶中存放的令牌数量达到前述固定值,则丢弃多余的令牌。由于令牌桶生成令牌的速率是恒定的,而请求获取令牌是没有速度限制的,所以可以在短时间内从令牌桶中获取大量令牌,即令牌桶适合应用于短时间内出现大流量的状况。
[0074]
在另一些实施方式中,该令牌产生模块可以是漏桶,每个请求被视为水滴放入漏桶进行存储,漏桶以恒定的速率向外漏出请求去处理,如果漏桶空了则停止漏水,如果漏桶
满了则丢弃多余的水滴。由于漏桶的出水速率是恒定的,所以漏桶不适合应用于短时间内出现大流量的状况。
[0075]
如图3所示,在一些实施方式中,令牌产生模块产生令牌的过程具体包括步骤s301至s303:
[0076]
s301、为第一账号信息添加参数签名。
[0077]
服务器通过运行有客户端的终端来接收终端的第一账号信息。其中,服务器与该终端之间接口的参数都进行了对称加密,可避免信息被篡改伪造。
[0078]
第一账号信息用于唯一标识出用户身份,通常可由数字、字母、符号和文字中的至少一种字符组成,可以是用户账号。
[0079]
为第一账号信息添加参数签名能够避免第一账号信息被伪造。其中,参数签名可以是随机数。为第一账号信息添加参数签名,可以是先将组成第一账号信息的字符串按预设规则进行拆分,然后将随机数插入拆分后的字符串中,再按预设的置乱规则进行置乱,从而完成参数签名的添加。在完成参数签名的添加后,对添加有参数签名的第一账号信息进行验证。
[0080]
s302、在对第一账号信息验证通过后,根据第一账号信息以及对应于第一账号信息的第二账号信息组成关联信息。
[0081]
在一些实施方式中,从添加有参数签名的第一账号信息中,提取出第一账号信息,并根据第一账号信息与数据库中各账号信息进行匹配。
[0082]
当根据第一账号信息从数据库中查找到与第一账号信息关联的第二账号信息时,则将第一账号信息以及与其关联的第二账号信息组成关联信息。例如,第一账号信息为淘宝账号,服务器为闲鱼服务器,服务器在接收到淘宝账号时,从数据库中查找与该淘宝账号对应的闲鱼账号,然后将查找的闲鱼账号以及对应的淘宝账号形成关联信息,通过淘宝账号可以登录闲鱼app或网站。关联信息只包含闲鱼账号以及对应的淘宝账号信息,不包括终端的cookie,即服务器在登录验证阶段不生成cookie和识别cookie。
[0083]
s303、对关联信息进行加密,生成令牌。
[0084]
在一些实施方式中,服务器在接收到关联信息后,通过私钥对关联信息进行加密,形成令牌。其中,令牌的加密为非对称加密。服务器在生成令牌后,可缓存该令牌用于对后续接收到的令牌进行验证。
[0085]
为提高令牌的可靠性,还可以根据目标信息对关联信息进行不可逆加密,生成令牌。其中,目标信息至少包括接收到关联信息时的时间戳。时间戳用于使令牌具备有效期限属性,从而后续可根据时间戳来验证令牌是否过期。该有效期限属性可根据实际情况进行设定,例如令牌的有效属性可以设置为表示令牌的有效时长为3小时~6小时,这样可以防止非法用户通过非法挂机程序恶意领取奖励,保证业务能够正常进行。
[0086]
在一些实施方式中,该为各线性存储结构中的前述业务请求分配由令牌产生模块所产生的令牌,包括:
[0087]
基于预先设置的线性存储结构优先级及各个线性存储结构中的时间顺序为前述业务请求分配由令牌产生模块所产生的令牌,每一该线性存储结构对应设置有一个该令牌产生模块。
[0088]
在一些实施方式中,该对应信息包括第一账号信息;该令牌产生模块产生令牌的
步骤包括:
[0089]
为第一账号信息添加参数签名;
[0090]
在对第一账号信息验证通过后,根据第一账号信息以及对应于第一账号信息的第二账号信息组成关联信息;
[0091]
对关联信息进行加密,生成令牌。
[0092]
在一些实施方式中,该对应信息还包括业务类别、互联网协议地址、请求路径及服务类别;
[0093]
该将符合限流条件的业务请求按照时间顺序存入该限流条件对应的线性存储结构中,包括:
[0094]
分别获取该业务类别、互联网协议地址、请求路径及服务类别的对应限流条件;
[0095]
将符合该对应限流条件的业务请求按照时间戳顺序存入该对应限流条件对应的线性存储结构中。
[0096]
在一些实施方式中,该将符合该对应限流条件的业务请求按照时间戳顺序存入该对应限流条件对应的线性存储结构中,包括:
[0097]
确定前述业务请求中是否包含有预设业务类别的请求;
[0098]
如果包含有预设业务类别的请求,则获取该预设业务类别对应的第一限流数目,按照时间戳顺序将前述业务请求中排序前第一限流数目的预设业务类别的请求和其它业务类别的请求存入第一线性存储结构;
[0099]
根据互联网协议地址确定前述业务请求中是否包含有异常请求;
[0100]
如果包含有异常请求,则将前述业务请求中的正常请求按照时间戳顺序存入第二线性存储结构;正常请求即不是异常请求的请求;
[0101]
根据请求路径确定前述业务请求中每个请求的复杂程度级别,基于该复杂程度级别将前述业务请求存入第三线性存储结构;
[0102]
获取各个服务类别对应的第二限流数目,按照时间戳顺序将前述业务请求中各个服务类别对应的排序前第二限流数目的请求存入第四线性存储结构。
[0103]
在一些实施方式中,该根据请求路径确定前述业务请求中每个请求的复杂程度级别,包括:
[0104]
获取第一时段内每个请求路径对应的多个历史响应耗时,基于该多个历史响应耗时计算每个请求路径对应的平均响应耗时;
[0105]
基于该平均响应耗时及预设的响应耗时与复杂程度级别的映射关系确定每个请求路径对应的复杂程度级别。
[0106]
在一些实施方式中,该基于该复杂程度级别将前述业务请求存入第三线性存储结构,包括:
[0107]
确定前述业务请求中各个复杂程度级别的请求的数量;
[0108]
根据该数量及预先确定的各个复杂程度级别对应的权重计算各个复杂程度级别对应的第三限流数目;
[0109]
按照时间戳顺序将前述业务请求中各个复杂程度级别对应的排序靠前的第三限流数目的请求存入第三线性存储结构。
[0110]
在一些实施方式中,该根据互联网协议地址确定前述业务请求中是否包含有异常
请求,包括:
[0111]
如果某一目标互联网协议地址在第二时段内发送请求的数量大于预设阈值,则确定前述业务请求中该目标互联网协议地址发送的请求为异常请求。
[0112]
在一些实施方式中,获取预先设置的线性存储结构优先级,基于该线性存储结构优先级及各个线性存储结构中请求的顺序为前述业务请求分配令牌,如果前述业务请求中某一目标请求从每一令牌产生模块中均获得令牌,则处理该目标请求。目标请求也可以称为指定请求。
[0113]
相关技术中通常需要用到第三方服务器,本地服务器需要与第三方服务器进行通讯。在本实施例的技术方案中,成功验证第一账号信息后,生成关联信息,再生成令牌,使得后续通过令牌进行登录验证时,终端只需通过服务器即可进行登录验证,且由于令牌是由不包含cookie的关联信息形成的,因此无需服务器与第三方服务器进行通信,从而节省了网络请求时间。在更换终端进行登录时,也无需重新通过第三方生成令牌,从而提高登录速度。同时,由于不需要通过第三方服务器生成令牌,因此后续无需通过第三方服务器进行令牌的验证,在更换终端进行登录时,也无需重新通过第三方进行令牌生成,去除对第三方服务器的依赖,避免由于第三方服务器的偶发性宕机或异常导致登录成功率不可控的情况。
[0114]
s40、对获得由每一令牌产生模块所产生的令牌的业务请求进行处理。
[0115]
在一些实施方式中,四个维度的线性存储结构的优先级顺序为:服务类别》请求路径》互联网协议地址》业务类别,各个线性存储结构中的请求已按时间戳顺序排序,基于该线性存储结构优先级顺序、各个线性存储结构中请求的顺序为请求分配令牌,如果业务请求中某一目标请求从每一令牌产生模块中均获得令牌,执行该目标请求。
[0116]
如果某一请求从某一令牌产生模块中未获取到令牌,则说明这个请求被这个令牌产生模块限流,则不处理该请求。
[0117]
在该确定前述业务请求中是否包含有预设业务类别的请求之后,该方法还包括:
[0118]
如果确定前述业务请求中没有预设业务类别的请求,则删除第一线性存储结构;
[0119]
如果业务请求中没有限时抢购类的请求,则没有必要以业务类别为维度进行限流。
[0120]
在该确定前述业务请求中是否包含有异常请求之后,该方法还包括:
[0121]
如果确定前述业务请求中没有异常请求,则删除第二线性存储结构。
[0122]
在一些实施方式中,如果业务请求中没有异常请求(短时间内发送大量请求),则没有必要以互联网协议地址为维度进行限流。
[0123]
本方案通过从服务类别、请求路径、互联网协议地址及业务类别四个维度进行限流,实现了精确限流,可更合理的处理业务请求。
[0124]
为方便后续根据令牌进行登录验证,该方法还可以包括:将令牌缓存至终端。其中,终端缓存的令牌用于在下次根据第一账号信息进行登录时,可进行快捷登录。
[0125]
在一些实施方式中,在终端缓存令牌后,服务器可只保留令牌的令牌签名,从而节省服务器的存储压力。
[0126]
本技术实施例提供的业务请求处理方法,针对预设时长内接收的多个业务请求,提取每个业务请求的对应信息,将符合限流条件的业务请求按照时间顺序存入该限流条件对应的线性存储结构中,为各线性存储结构中的前述业务请求分配由令牌产生模块所产生
的令牌,对获得由每一该令牌产生模块所产生的令牌的业务请求进行处理,能够解决业务请求量过大导致服务器运行缓慢或宕机的问题,实现了精确的限流、更合理的处理业务请求,满足业务请求的限流需求。
[0127]
如图4所示,本技术的另一个实施例提供了一种业务请求处理装置,包括:
[0128]
提取模块,用于针对预设时长内接收的多个业务请求,提取每个业务请求的对应信息;
[0129]
存储模块,用于将符合限流条件的业务请求按照时间顺序存入该限流条件对应的线性存储结构中;该限流条件与该对应信息相对应;
[0130]
分配模块,用于为各线性存储结构中的前述业务请求分配由令牌产生模块所产生的令牌,每一该线性存储结构对应设置有一个该令牌产生模块;
[0131]
处理模块,用于对获得由每一该令牌产生模块所产生的令牌的业务请求进行处理。
[0132]
在一些实施方式中,分配模块所执行的为各线性存储结构中的前述业务请求分配由令牌产生模块所产生的令牌,包括:
[0133]
基于预先设置的线性存储结构优先级及各个线性存储结构中的时间顺序为前述业务请求分配由令牌产生模块所产生的令牌,每一该线性存储结构对应设置有一个该令牌产生模块。
[0134]
在一些实施方式中,该对应信息包括第一账号信息;该令牌产生模块产生令牌的步骤包括:
[0135]
为第一账号信息添加参数签名;
[0136]
在对第一账号信息验证通过后,根据第一账号信息以及对应于第一账号信息的第二账号信息组成关联信息;
[0137]
对关联信息进行加密,生成令牌。
[0138]
在一些实施方式中,该对应信息还包括业务类别、互联网协议地址、请求路径及服务类别;
[0139]
该将符合限流条件的业务请求按照时间顺序存入该限流条件对应的线性存储结构中,包括:
[0140]
分别获取该业务类别、互联网协议地址、请求路径及服务类别的对应限流条件;
[0141]
将符合该对应限流条件的业务请求按照时间戳顺序存入该对应限流条件对应的线性存储结构中。
[0142]
在一些实施方式中,该将符合该对应限流条件的业务请求按照时间戳顺序存入该对应限流条件对应的线性存储结构中,包括:
[0143]
确定前述业务请求中是否包含有预设业务类别的请求;
[0144]
如果是,则获取该预设业务类别对应的第一限流数目,按照时间戳顺序将前述业务请求中排序靠前的第一限流数目的预设业务类别的请求和其它业务类别的请求存入第一线性存储结构;
[0145]
根据互联网协议地址确定前述业务请求中是否包含有异常请求,如果包含有异常请求,则将前述业务请求中不是异常请求的请求按照时间戳顺序存入第二线性存储结构;
[0146]
根据请求路径确定前述业务请求中每个请求的复杂程度级别,基于该复杂程度级
别将前述业务请求存入第三线性存储结构;
[0147]
获取各个服务类别对应的第二限流数目,按照时间戳顺序将前述业务请求中各个服务类别对应的排序靠前的第二限流数目的请求存入第四线性存储结构。
[0148]
在一些实施方式中,该根据请求路径确定前述业务请求中每个请求的复杂程度级别,包括:
[0149]
获取第一时段内每个请求路径对应的多个历史响应耗时,基于该多个历史响应耗时计算每个请求路径对应的平均响应耗时;
[0150]
基于该平均响应耗时及预设的响应耗时与复杂程度级别的映射关系确定每个请求路径对应的复杂程度级别。
[0151]
在一些实施方式中,该基于该复杂程度级别将前述业务请求存入第三线性存储结构,包括:
[0152]
确定前述业务请求中各个复杂程度级别的请求的数量;
[0153]
根据该数量及预先确定的各个复杂程度级别对应的权重计算各个复杂程度级别对应的第三限流数目;
[0154]
按照时间戳顺序将前述业务请求中各个复杂程度级别对应的排序靠前的第三限流数目的请求存入第三线性存储结构。
[0155]
在一些实施方式中,该根据互联网协议地址确定前述业务请求中是否包含有异常请求,包括:
[0156]
如果某一目标互联网协议地址在第二时段内发送请求的数量大于预设阈值,则确定前述业务请求中该目标互联网协议地址发送的请求为异常请求。
[0157]
在一些实施方式中,该装置还包括删除模块,删除模块用于在该确定前述业务请求中是否包含有预设业务类别的请求之后,如果确定前述业务请求中没有预设业务类别的请求,则删除第一线性存储结构;以及用于
[0158]
在该确定前述业务请求中是否包含有异常请求之后,如果确定前述业务请求中没有异常请求,则删除第二线性存储结构。
[0159]
本技术实施例提供的业务请求处理装置,能够针对预设时长内接收的多个业务请求,提取每个业务请求的对应信息,将符合限流条件的业务请求按照时间顺序存入该限流条件对应的线性存储结构中,为各线性存储结构中的前述业务请求分配由令牌产生模块所产生的令牌,对获得由每一该令牌产生模块所产生的令牌的业务请求进行处理,能够解决业务请求量过大导致服务器运行缓慢或宕机的问题,满足业务请求的限流需求。
[0160]
本技术的另一个实施例提供了一种电子设备,包括存储器、处理器及存储在该存储器上并可在该处理器上运行的计算机程序,该处理器执行该程序,以实现上述任一实施方式的业务请求处理方法。
[0161]
如图5所示,电子设备10可以包括:处理器100,存储器101,总线102和通信接口103,处理器100、通信接口103和存储器101通过总线102连接;存储器101中存储有可在处理器100上运行的计算机程序,处理器100运行该计算机程序时执行本技术前述任一实施方式所提供的方法。
[0162]
其中,存储器101可能包含高速随机存取存储器(ram:random access memory),也可能还可以包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通
过至少一个通信接口103(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网、广域网、本地网、城域网等。
[0163]
总线102可以是isa总线、pci总线或eisa总线等。总线可以分为地址总线、数据总线、控制总线等。其中,存储器101用于存储程序,处理器100在接收到执行指令后,执行该程序,前述本技术实施例任一实施方式揭示的方法可以应用于处理器100中,或者由处理器100实现。
[0164]
处理器100可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器100中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器100可以是通用处理器,可以包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器101,处理器100读取存储器101中的信息,结合其硬件完成上述方法的步骤。
[0165]
本技术实施例提供的电子设备与本技术实施例提供的方法出于相同的发明构思,具有与其采用、运行或实现的方法相同的有益效果。
[0166]
本技术的另一个实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行,以实现上述任一实施方式的业务请求处理方法。
[0167]
本技术实施方式还提供一种与前述实施方式所提供的方法对应的计算机可读存储介质,参考图6所示,其示出的计算机可读存储介质为光盘20,其上存储有计算机程序(即程序产品),该计算机程序在被处理器运行时,会执行前述任意实施方式所提供的方法。
[0168]
需要说明的是,计算机可读存储介质的例子还可以包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类别的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
[0169]
本技术的上述实施例提供的计算机可读存储介质与本技术实施例提供的方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。
[0170]
需要说明的是:
[0171]
术语“模块”并非意图受限于特定物理形式。取决于具体应用,模块可以实现为硬件、固件、软件和/或其组合。此外,不同的模块可以共享公共组件或甚至由相同组件实现。不同模块之间可以存在或不存在清楚的界限。
[0172]
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示例一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本技术也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本技术的内容,并且上面对特定语言所做的描述是为了披露本申
请的最佳实施方式。
[0173]
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0174]
以上该实施例仅表达了本技术的实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出如果干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。

技术特征:
1.一种业务请求处理方法,其特征在于,所述方法包括:针对预设时长内接收的多个业务请求,提取每个所述业务请求的对应信息;将符合限流条件的业务请求按照时间顺序存入所述限流条件对应的线性存储结构中;所述限流条件与所述对应信息相对应;为各线性存储结构中的所述业务请求分配由令牌产生模块所产生的令牌,每一所述线性存储结构对应设置有一个所述令牌产生模块;对获得由每一所述令牌产生模块所产生的令牌的业务请求进行处理。2.如权利要求1所述的业务请求处理方法,其特征在于,所述为各线性存储结构中的所述业务请求分配由令牌产生模块所产生的令牌,包括:基于预先设置的线性存储结构优先级及各个线性存储结构中的时间顺序为所述业务请求分配由令牌产生模块所产生的令牌,每一所述线性存储结构对应设置有一个所述令牌产生模块。3.如权利要求1所述的业务请求处理方法,其特征在于,所述对应信息包括第一账号信息;所述令牌产生模块产生令牌的步骤包括:为第一账号信息添加参数签名;在对第一账号信息验证通过后,根据第一账号信息以及对应于第一账号信息的第二账号信息组成关联信息;对关联信息进行加密,生成令牌。4.如权利要求3所述的业务请求处理方法,其特征在于,所述对应信息还包括业务类别、互联网协议地址、请求路径及服务类别;所述将符合限流条件的业务请求按照时间顺序存入所述限流条件对应的线性存储结构中,包括:分别获取所述业务类别、互联网协议地址、请求路径及服务类别的对应限流条件;将符合所述对应限流条件的业务请求按照时间戳顺序存入所述对应限流条件对应的线性存储结构中。5.如权利要求4所述的业务请求处理方法,其特征在于,所述将符合所述对应限流条件的业务请求按照时间戳顺序存入所述对应限流条件对应的线性存储结构中,包括:确定所述业务请求中是否包含有预设业务类别的请求;如果是,则获取所述预设业务类别对应的第一限流数目,按照时间戳顺序将所述业务请求中排序靠前的第一限流数目的预设业务类别的请求和其它业务类别的请求存入第一线性存储结构;根据互联网协议地址确定所述业务请求中是否包含有异常请求,如果包含有异常请求,则将所述业务请求中不是异常请求的请求按照时间戳顺序存入第二线性存储结构;根据请求路径确定所述业务请求中每个请求的复杂程度级别,基于所述复杂程度级别将所述业务请求存入第三线性存储结构;获取各个服务类别对应的第二限流数目,按照时间戳顺序将所述业务请求中各个服务类别对应的排序靠前的第二限流数目的请求存入第四线性存储结构。6.如权利要求5所述的业务请求处理方法,其特征在于,所述根据请求路径确定所述业务请求中每个请求的复杂程度级别,包括:
获取第一时段内每个请求路径对应的多个历史响应耗时,基于所述多个历史响应耗时计算每个请求路径对应的平均响应耗时;基于所述平均响应耗时及预设的响应耗时与复杂程度级别的映射关系确定每个请求路径对应的复杂程度级别。7.如权利要求5所述的业务请求处理方法,其特征在于,所述基于所述复杂程度级别将所述业务请求存入第三线性存储结构,包括:确定所述业务请求中各个复杂程度级别的请求的数量;根据所述数量及预先确定的各个复杂程度级别对应的权重计算各个复杂程度级别对应的第三限流数目;按照时间戳顺序将所述业务请求中各个复杂程度级别对应的排序靠前的第三限流数目的请求存入第三线性存储结构。8.如权利要求5所述的业务请求处理方法,其特征在于,所述根据互联网协议地址确定所述业务请求中是否包含有异常请求,包括:如果某一目标互联网协议地址在第二时段内发送请求的数量大于预设阈值,则确定所述业务请求中所述目标互联网协议地址发送的请求为异常请求。9.如权利要求4所述的业务请求处理方法,其特征在于,在所述确定所述业务请求中是否包含有预设业务类别的请求之后,所述方法还包括:如果确定所述业务请求中没有预设业务类别的请求,则删除第一线性存储结构;在所述确定所述业务请求中是否包含有异常请求之后,所述方法还包括:如果确定所述业务请求中没有异常请求,则删除第二线性存储结构。10.一种业务请求处理装置,其特征在于,包括:提取模块,用于针对预设时长内接收的多个业务请求,提取每个所述业务请求的对应信息;存储模块,用于将符合限流条件的业务请求按照时间顺序存入所述限流条件对应的线性存储结构中;所述限流条件与所述对应信息相对应;分配模块,用于为各线性存储结构中的所述业务请求分配由令牌产生模块所产生的令牌,每一所述线性存储结构对应设置有一个所述令牌产生模块;处理模块,用于对获得由每一所述令牌产生模块所产生的令牌的业务请求进行处理。11.一种电子设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序,以实现如权利要求1-9中任一所述的方法。12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行,以实现如权利要求1-9中任一所述的方法。

技术总结
本申请公开了一种业务请求处理方法、装置、电子设备及存储介质。该方法包括:针对预设时长内接收的多个业务请求,提取每个所述业务请求的对应信息;将符合限流条件的业务请求按照时间顺序存入所述限流条件对应的线性存储结构中;所述限流条件与所述对应信息相对应;为各线性存储结构中的所述业务请求分配由令牌产生模块所产生的令牌,每一所述线性存储结构对应设置有一个所述令牌产生模块;对获得由每一所述令牌产生模块所产生的令牌的业务请求进行处理。本申请的业务请求处理方法,能够解决业务请求量过大导致服务器运行缓慢或宕机的问题,满足业务请求的限流需求。满足业务请求的限流需求。满足业务请求的限流需求。


技术研发人员:何辉
受保护的技术使用者:平安壹钱包电子商务有限公司
技术研发日:2022.07.21
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-2665.html

最新回复(0)