本发明专利技术提供一种服务限流方法、装置、计算机设备及存储介质,方法包括:获取目标服务接口接收到的第一目标服务请求;根据目标服务接口的切面注解,获取预设限流执行策略以及目标服务接口的预设限流参数;根据预设限流执行策略和预设限流参数,确定目标服务接口是否满足限流条件的第一触发结果;若第一触发结果表征目标服务接口满足限流条件,则对第一目标服务请求进行限流处理。使得不同服务接口可以有不同的限流参数,能够满足所有接口的限流需求,也不会影响服务能力;此外,由于采用面向切面编程的方式,只需要预先编写一个预设限流执行策略即可,提高了代码复用,降低了开发人员的工作量,提高了开发效率。提高了开发效率。提高了开发效率。
【技术实现步骤摘要】
一种服务限流方法、装置、计算机设备及存储介质
[0001]本专利技术涉及网络通信
,具体涉及一种服务限流方法、装置、计算机设备及存储介质。
技术介绍
[0002]在软件开发过程中,为了避免服务上线后因高并发而导致服务不可用,通常会采取一些限流策略,限制部分请求的访问,从而在服务资源不足的情况下,保证核心业务能够正常运行。
[0003]现有技术中,通常在Nginx或Tomcat等Web服务器中进行统一配置,但该方式会导致服务的所有接口采用相同的限流参数进行限流;而在实际业务场景中,不同的接口由于业务功能的复杂性不同,对应的服务流量不同,若是采用相同的限流参数进行限流,而限流参数的设置需要以接口的性能作为最低限度,从而导致服务的最大流量取决于性能最差的接口,严重影响了服务能力。
技术实现思路
[0004]针对现有技术中所存在的不足,本专利技术提供一种服务限流方法、装置、计算机设备及存储介质。
[0005]第一方面,在一个实施例中,本专利技术提供一种服务限流方法,包括:
[0006]获取目标服务接口接收到的第一目标服务请求;
[0007]根据目标服务接口的切面注解,获取预设限流执行策略以及目标服务接口的预设限流参数;
[0008]根据预设限流执行策略和预设限流参数,确定目标服务接口是否满足限流条件的第一触发结果;
[0009]若第一触发结果表征目标服务接口满足限流条件,则对第一目标服务请求进行限流处理。
[0010]在一个实施例中,预设限流执行策略包括漏桶队列,预设限流参数包括与漏桶队列对应的目标请求数量;根据预设限流执行策略和预设限流参数,确定目标服务接口是否满足限流条件的第一触发结果,包括:
[0011]检测漏桶队列中的当前请求数量;
[0012]若当前请求数量未小于目标请求数量,则得到表征目标服务接口满足限流条件的第一触发结果。
[0013]在一个实施例中,在根据预设限流执行策略和预设限流参数,确定目标服务接口是否满足限流条件的第一触发结果的步骤之后,上述服务限流方法还包括:
[0014]若第一触发结果表征目标服务接口未满足限流条件,则将第一目标服务请求确定为待处理服务请求并添加至漏桶队列;
[0015]获取漏桶队列中最先添加的待处理服务请求;
[0016]对最先添加的待处理服务请求进行服务处理。
[0017]在一个实施例中,预设限流执行策略包括令牌桶队列,预设限流参数包括与令牌桶队列对应的目标令牌数量;根据所述预设限流执行策略和预设限流参数,确定目标服务接口是否满足限流条件的第一触发结果,包括:
[0018]检测令牌桶队列中的剩余令牌数量;令牌桶队列中的令牌用于指示对服务请求进行服务处理;
[0019]若剩余令牌数量未大于目标令牌数据,则得到表征目标服务接口满足限流条件的第一触发结果。
[0020]在一个实施例中,对第一目标服务请求进行限流处理,包括:
[0021]对第一目标服务请求进行服务降级,得到降级服务请求;
[0022]根据降级服务请求,向第一目标服务请求对应的第一用户终端发送限流指示信息。
[0023]在一个实施例中,根据降级服务请求,向第一目标服务请求对应的第一用户终端发送限流指示信息,包括:
[0024]将降级服务请求添加至排队序列中;
[0025]确定降级服务请求在排队序列中的目标排队位次;
[0026]根据降级服务请求在排队序列中的目标排队位次,向第一用户终端发送限流指示信息;限流指示信息包括目标排队位次。
[0027]在一个实施例中,在向第一用户终端发送目标排队位次的步骤之后,上述服务限流方法还包括:
[0028]重新确定目标服务接口是否满足限流条件的第二触发结果;
[0029]若第二触发结果表征目标服务接口未满足限流条件,则确定排队序列中排队位次最靠前的降级服务请求对应的第二用户终端;
[0030]向目标服务接口发送第二用户终端对应的第二目标服务请求。
[0031]第二方面,在一个实施例中,本专利技术提供一种服务限流装置,包括:
[0032]请求获取模块,用于获取目标服务接口接收到的第一目标服务请求;
[0033]策略获取模块,用于根据目标服务接口的切面注解,获取预设限流执行策略以及目标服务接口的预设限流参数;
[0034]触发确定模块,用于根据预设限流执行策略和预设限流参数,确定目标服务接口是否满足限流条件的第一触发结果;
[0035]限流处理模块,若第一触发结果表征目标服务接口满足限流条件,则用于对第一目标服务请求进行限流处理。
[0036]第三方面,在一个实施例中,本专利技术提供一种计算机设备,包括存储器和处理器;存储器存储有计算机程序,处理器用于运行存储器内的计算机程序,以执行上述任一种实施例中的服务限流方法中的步骤。
[0037]第四方面,在一个实施例中,本专利技术提供一种存储介质,存储介质存储有计算机程序,计算机程序被处理器进行加载,以执行上述任一种实施例中的服务限流方法中的步骤。
[0038]通过上述服务限流方法、装置、计算机设备及存储介质,预先通过面向切面编程的方式编写对应的预设限流执行策略,通过切面注解将预设限流执行策略关联到每个服务接
口,以及通过切面注解设置每个服务接口的限流参数;对于目标服务接口,当接收到第一目标服务请求后,即可执行切面注解中的内容,即获取并执行预设限流执行策略,在执行预设限流执行策略的过程中,使用预设限流参数,使得不同服务接口可以有不同的限流参数,能够满足所有接口的限流需求,也不会影响服务能力;此外,由于采用面向切面编程的方式,只需要预先编写一个预设限流执行策略即可,提高了代码复用,降低了开发人员的工作量,提高了开发效率。
附图说明
[0039]为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0040]图1为本专利技术一个实施例中限流服务方法的应用场景示意图;
[0041]图2为本专利技术一个实施例中限流服务方法的流程示意图;
[0042]图3为本专利技术一个实施例中限流服务装置的结构示意图;
[0043]图4为本专利技术一个实施例中计算机设备的内部结构示意图。
具体实施方式
[0044]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0045]在本专利技术的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种服务限流方法,其特征在于,包括:获取目标服务接口接收到的第一目标服务请求;根据所述目标服务接口的切面注解,获取预设限流执行策略以及所述目标服务接口的预设限流参数;根据所述预设限流执行策略和所述预设限流参数,确定所述目标服务接口是否满足限流条件的第一触发结果;若所述第一触发结果表征所述目标服务接口满足限流条件,则对所述第一目标服务请求进行限流处理。2.根据权利要求1所述的服务限流方法,其特征在于,所述预设限流执行策略包括漏桶队列,所述预设限流参数包括与所述漏桶队列对应的目标请求数量;所述根据所述预设限流执行策略和所述预设限流参数,确定所述目标服务接口是否满足限流条件的第一触发结果,包括:检测所述漏桶队列中的当前请求数量;若所述当前请求数量未小于所述目标请求数量,则得到表征所述目标服务接口满足限流条件的第一触发结果。3.根据权利要求2所述的服务限流方法,其特征在于,在所述根据所述预设限流执行策略和所述预设限流参数,确定所述目标服务接口是否满足限流条件的第一触发结果的步骤之后,还包括:若所述第一触发结果表征所述目标服务接口未满足限流条件,则将所述第一目标服务请求确定为待处理服务请求并添加至所述漏桶队列;获取所述漏桶队列中最先添加的待处理服务请求;对所述最先添加的待处理服务请求进行服务处理。4.根据权利要求1所述的服务限流方法,其特征在于,所述预设限流执行策略包括令牌桶队列,所述预设限流参数包括与所述令牌桶队列对应的目标令牌数量;所述根据所述预设限流执行策略和所述预设限流参数,确定所述目标服务接口是否满足限流条件的第一触发结果,包括:检测所述令牌桶队列中的剩余令牌数量;所述令牌桶队列中的令牌用于指示对服务请求进行服务处理;若所述剩余令牌数量未大于所述目标令牌数据,则得到表征所述目标服务接口满足限流条件的第一触发结果。5.根据权利要求1至4任一项所述的服务限流方法,其特征在于,所述对所述第一目标服务请求进行限流处理...
【专利技术属性】
技术研发人员:周小亮,
申请(专利权)人:平安银行股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。