并发请求处理方法、装置、服务器及存储介质制造方法及图纸

技术编号:29937018 阅读:18 留言:0更新日期:2021-09-04 19:15
本发明专利技术涉及数据处理,揭露一种并发请求处理方法,包括:获取业务类型、IP地址、请求路径及服务类型对应的限流条件,将并发请求中符合对应限流条件的请求按照时间戳顺序存储至对应限流条件对应的队列中,得到多个队列;为每个队列分配一个限流桶,限流桶用于以固定速率产生令牌;基于预设的队列优先级信息及各个队列中请求的顺序为并发请求分配令牌,若并发请求中某一指定请求从每个限流桶中都获得了令牌,则处理指定请求。本发明专利技术还提供一种并发请求处理装置、服务器及存储介质。本发明专利技术实现了细粒度的限流、更合理的处理并发请求。更合理的处理并发请求。更合理的处理并发请求。

【技术实现步骤摘要】
并发请求处理方法、装置、服务器及存储介质


[0001]本专利技术涉及数据处理领域,尤其涉及一种并发请求处理方法、装置、服务器及存储介质。

技术介绍

[0002]请求限流为限制同一时间或一定时间内请求的数量,目的是通过对同一时间或一个时间窗口内的大量请求进行限速以保护系统。
[0003]现有的请求限流方案通常是针对整个系统的,当请求量超过系统预设的限流值时,其它请求需等待或被丢弃,而没有细粒度的限流方案,从而使得对请求的处理不够合理,例如,若一批并发请求中逻辑复杂的请求数量多,在按照预设的限流值限流后,仍可能出现系统崩溃或运行缓慢的情况。因此,亟需一种并发请求处理方法,以细粒度的进行限流、合理处理并发请求。

技术实现思路

[0004]鉴于以上内容,有必要提供一种并发请求处理方法,旨在实现细粒度的限流,以合理处理并发请求。
[0005]本专利技术提供的并发请求处理方法,包括:
[0006]接收并发请求,获取所述并发请求中每个请求对应的业务类型、IP地址、请求路径及服务类型;
[0007]分别获取所述业务类型、IP地址、请求路径及服务类型对应的限流条件,将所述并发请求中符合对应限流条件的请求按照时间戳顺序存储至对应限流条件对应的队列中,得到多个队列;
[0008]为每个队列分配一个限流桶,所述限流桶用于以固定速率产生令牌;
[0009]获取预先设置的队列优先级信息,基于所述队列优先级信息及各个队列中请求的顺序为所述并发请求分配令牌,若所述并发请求中某一指定请求从每个限流桶中都获得了令牌,则处理所述指定请求。
[0010]可选的,所述将所述并发请求中符合对应限流条件的请求按照时间戳顺序存储至对应限流条件对应的队列中,包括:
[0011]判断所述并发请求中是否含有预设业务类型的请求,若有,获取所述预设业务类型对应的第一限流数量,按照时间戳顺序将所述并发请求中排序靠前的第一限流数量的预设业务类型的请求和其它业务类型的请求存储至第一队列;
[0012]根据IP地址判断所述并发请求中是否含有异常请求,若有,将所述并发请求中不是异常请求的请求按照时间戳顺序存储至第二队列;
[0013]根据请求路径确定所述并发请求中每个请求的复杂度等级,基于所述复杂度等级将所述并发请求存储至第三队列;
[0014]获取各个服务类型对应的第二限流数量,按照时间戳顺序将所述并发请求中各个
服务类型对应的排序靠前的第二限流数量的请求存储至第四队列。
[0015]可选的,所述根据请求路径确定所述并发请求中每个请求的复杂度等级,包括:
[0016]获取第一时间段内每个请求路径对应的多个历史响应时间,基于所述多个历史响应时间计算每个请求路径对应的平均响应时间;
[0017]基于所述平均响应时间及预设的响应时间与复杂度等级的映射关系确定每个请求路径对应的复杂度等级。
[0018]可选的,所述基于所述复杂度等级将所述并发请求存储至第三队列,包括:
[0019]确定所述并发请求中各个复杂度等级的请求的数量;
[0020]根据所述数量及预先确定的各个复杂度等级对应的权重计算各个复杂度等级对应的第三限流数量;
[0021]按照时间戳顺序将所述并发请求中各个复杂度等级对应的排序靠前的第三限流数量的请求存储至第三队列。
[0022]可选的,在所述为每个队列分配一个限流桶之后,所述方法还包括:
[0023]获取所述服务器所属的服务器集群的空闲资源信息,基于所述空闲资源信息为每个限流桶配置令牌原始生成速率及原始最大令牌数量,基于所述令牌原始生成速率及原始最大令牌数量为每个限流桶生成令牌。
[0024]可选的,所述根据IP地址判断所述并发请求中是否含有异常请求,包括:
[0025]若某一指定IP地址在第二时间段内发送请求的数量大于预设阈值,则判断所述并发请求中所述指定IP地址发送的请求为异常请求。
[0026]可选的,在所述判断所述并发请求中是否含有预设业务类型的请求之后,所述方法还包括:
[0027]若判断所述并发请求中没有预设业务类型的请求,则删除第一队列;
[0028]在所述判断所述并发请求中是否含有异常请求之后,所述方法还包括:
[0029]若判断所述并发请求中没有异常请求,则删除第二队列。
[0030]为了解决上述问题,本专利技术还提供一种并发请求处理装置,所述装置包括:
[0031]获取模块,用于接收并发请求,获取所述并发请求中每个请求对应的业务类型、IP地址、请求路径及服务类型;
[0032]存储模块,用于分别获取所述业务类型、IP地址、请求路径及服务类型对应的限流条件,将所述并发请求中符合对应限流条件的请求按照时间戳顺序存储至对应限流条件对应的队列中,得到多个队列;
[0033]分配模块,用于为每个队列分配一个限流桶,所述限流桶用于以固定速率产生令牌;
[0034]处理模块,用于获取预先设置的队列优先级信息,基于所述队列优先级信息及各个队列中请求的顺序为所述并发请求分配令牌,若所述并发请求中某一指定请求从每个限流桶中都获得了令牌,则处理所述指定请求。
[0035]为了解决上述问题,本专利技术还提供一种服务器,所述服务器包括:
[0036]至少一个处理器;以及,
[0037]与所述至少一个处理器通信连接的存储器;其中,
[0038]所述存储器存储有可被所述至少一个处理器执行的并发请求处理程序,所述并发
请求处理程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述并发请求处理方法。
[0039]为了解决上述问题,本专利技术还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有并发请求处理程序,所述并发请求处理程序可被一个或者多个处理器执行,以实现上述并发请求处理方法。
[0040]相较现有技术,本专利技术首先获取业务类型、IP地址、请求路径及服务类型对应的限流条件,将并发请求中符合对应限流条件的请求按照时间戳顺序存储至对应限流条件对应的队列中,得到多个队列;接着,为每个队列分配一个限流桶,限流桶用于以固定速率产生令牌;最后,基于队列优先级信息及各个队列中请求的顺序为并发请求分配令牌,若并发请求中某一指定请求从每个限流桶中都获得了令牌,则处理所述指定请求,本专利技术实现了以业务类型、IP地址、请求路径及服务类型四个维度进行限流。因此,本专利技术实现了细粒度的限流、更合理的处理并发请求。
附图说明
[0041]图1为本专利技术一实施例提供的并发请求处理方法的流程示意图;
[0042]图2为本专利技术一实施例提供的并发请求处理装置的模块示意图;
[0043]图3为本专利技术一实施例提供的实现并发请求处理方法的服务器的结构示意图;
[0044]本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
[0045]为了使本专利技术的目的、技本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种并发请求处理方法,应用于服务器,其特征在于,所述方法包括:接收并发请求,获取所述并发请求中每个请求对应的业务类型、IP地址、请求路径及服务类型;分别获取所述业务类型、IP地址、请求路径及服务类型对应的限流条件,将所述并发请求中符合对应限流条件的请求按照时间戳顺序存储至对应限流条件对应的队列中,得到多个队列;为每个队列分配一个限流桶,所述限流桶用于以固定速率产生令牌;获取预先设置的队列优先级信息,基于所述队列优先级信息及各个队列中请求的顺序为所述并发请求分配令牌,若所述并发请求中某一指定请求从每个限流桶中都获得了令牌,则处理所述指定请求。2.如权利要求1所述的并发请求处理方法,其特征在于,所述将所述并发请求中符合对应限流条件的请求按照时间戳顺序存储至对应限流条件对应的队列中,包括:判断所述并发请求中是否含有预设业务类型的请求,若有,获取所述预设业务类型对应的第一限流数量,按照时间戳顺序将所述并发请求中排序靠前的第一限流数量的预设业务类型的请求和其它业务类型的请求存储至第一队列;根据IP地址判断所述并发请求中是否含有异常请求,若有,将所述并发请求中不是异常请求的请求按照时间戳顺序存储至第二队列;根据请求路径确定所述并发请求中每个请求的复杂度等级,基于所述复杂度等级将所述并发请求存储至第三队列;获取各个服务类型对应的第二限流数量,按照时间戳顺序将所述并发请求中各个服务类型对应的排序靠前的第二限流数量的请求存储至第四队列。3.如权利要求2所述的并发请求处理方法,其特征在于,所述根据请求路径确定所述并发请求中每个请求的复杂度等级,包括:获取第一时间段内每个请求路径对应的多个历史响应时间,基于所述多个历史响应时间计算每个请求路径对应的平均响应时间;基于所述平均响应时间及预设的响应时间与复杂度等级的映射关系确定每个请求路径对应的复杂度等级。4.如权利要求2所述的并发请求处理方法,其特征在于,所述基于所述复杂度等级将所述并发请求存储至第三队列,包括:确定所述并发请求中各个复杂度等级的请求的数量;根据所述数量及预先确定的各个复杂度等级对应的权重计算各个复杂度等级对应的第三限流数量;按照时间戳顺序将所述并发请求中各个复杂度等级对应的排序靠前的第三限流数量的请求存储至第三队列。5.如权利...

【专利技术属性】
技术研发人员:李飞魏星罗强
申请(专利权)人:平安信托有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1