本申请提供了一种服务限流的方法、装置、电子设备及存储介质,该方法包括:响应注解配置操作,构建与注解配置操作对应的自定义注解;响应切面逻辑配置操作,使用自定义注解创建与切面逻辑配置操作对应的切面逻辑;响应目标令牌桶创建操作,在切面逻辑中创建与目标令牌桶创建操作对应的目标令牌桶,并将包含有目标令牌桶的切面逻辑集成在目标项目源码中,以使目标项目源码包括的各个接口中对应一目标令牌桶;接收外部请求,根据外部请求对应的目标接口去目标令牌桶中获取令牌,得到获取结果,并根据获取结果对目标接口进行限流。本申请能够对服务中不同接口分别进行限流,大大提高了方服务限流的灵活性。高了方服务限流的灵活性。高了方服务限流的灵活性。
【技术实现步骤摘要】
一种服务限流的方法、装置、电子设备及存储介质
[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]图1示出了本申请实施例所提供的一种服务限流的方法的流程示意图;
[0036]图2示出了本申请实施例所提供的一种服务限流的装置示意图;
[0037]图3示出了本申请实施例所提供的另一种服务限流的装置示意图;
[0038]图4为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
[0039]为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种服务限流的方法,其特征在于,所述方法包括:响应注解配置操作,构建与所述注解配置操作对应的自定义注解;响应切面逻辑配置操作,使用所述自定义注解创建与所述切面逻辑配5置操作对应的切面逻辑;响应目标令牌桶创建操作,在所述切面逻辑中创建与所述目标令牌桶创建操作对应的目标令牌桶,并将包含有所述目标令牌桶的所述切面逻辑集成在目标项目源码中,以使所述目标项目源码包括的各个接口中对应一所述目标令牌桶;0接收外部请求,根据所述外部请求对应的目标接口去所述目标令牌桶中获取令牌,得到获取结果,并根据所述获取结果对所述目标接口进行限流。2.根据权利要求1所述的方法,其特征在于,在所述切面逻辑中创建与所述目标令牌桶创建操作对应的目标令牌桶时,所述方法还包括:5设置传入的生产参数;所述传输参数表征单位时间内所述目标令牌桶中产生令牌数量;在满足生产要求的时候,所述目标令牌桶按照所述生产参数生产对应数量的令牌。3.根据权利要求2所述的方法,其特征在于,所述方法通过以下方0法判断是否满足生产要求:获取当前生产时间,并将所述当前生产时间与预设的生产时间段进行对比,若所述当前生产时间位于预设的生产时间段内,满足生产要求。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:响应缓存令牌桶创建操作,在所述切面逻辑中创建与所述缓存令牌桶创建操作对应的缓存令牌桶。5.根据权利要求4所述的方法,其特征在于,所述接收外部请求,根据所述外部请求对应的目标接口去所述目标令牌桶中获取令牌,得到获取结果,并根据所述获取结果对所述目标接口进行限流,包括:接收外部请求,根据所述外部请求对应的目标接口去所述目标令牌桶和所述缓存令牌桶中获取令牌,得到获取结果,并根据所述获取结果对所述目标接口进行限...
【专利技术属性】
技术研发人员:周小亮,
申请(专利权)人:平安银行股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。