System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种接口的多规则限流方法、系统、终端设备和存储介质技术方案_技高网

一种接口的多规则限流方法、系统、终端设备和存储介质技术方案

技术编号:43390180 阅读:12 留言:0更新日期:2024-11-19 18:04
本发明专利技术涉及接口限流技术领域,提出一种接口的多规则限流方法、系统、终端设备和存储介质,所述多规则限流方法包括:步骤S1:生成访问者的限流标识,获取多级限流规则;步骤S2:获取第一级时间周期内的访问次数,若访问次数小于等于第一级限流阈值,将下一级访问次数与下一级限流阈值进行比对,直至访问次数大于限流阈值或者完成所有级别的比对;步骤S3:若某个级别时间周期内的访问次数大于对应的限流阈值,则执行步骤S31:限流接口对访问者进行限流处理;否则执行步骤S32:保存访问记录并将访问者的最高级时间周期之外的访问数据删除,本发明专利技术有效地管理接口的负载,解决不同业务需求下的接口难以面对不同类型的流量压力的问题。

【技术实现步骤摘要】

本专利技术涉及接口限流,特别是一种接口的多规则限流方法、系统、终端设备和存储介质


技术介绍

1、随着互联网应用的普及,接口被恶意攻击或超负荷请求的情况日益严重。恶意攻击者通过发送大量请求来耗尽系统资源,导致服务不可用。常见的攻击形式如分布式拒绝服务(ddos)攻击,会通过大量伪造请求使系统崩溃,影响正常用户的访问,在高并发情况下,没有限流机制的接口可能会因为处理过多的请求而出现性能瓶颈或崩溃,无法满足正常用户的需求。

2、因此,需要提出一种限流方法,根据不同的流量模式和业务需求设置多个限制条件,灵活应对不同类型的流量压力。


技术实现思路

1、针对上述缺陷,本专利技术的目的在于提出一种接口的多规则限流方法、系统、终端设备和存储介质,旨在有效地管理接口的负载,解决不同的流量模式和业务需求下的接口难以面对不同类型的流量压力的问题。

2、为达此目的,本专利技术采用以下技术方案:

3、一种接口的多规则限流方法,包括:

4、步骤s1:生成访问者在限流接口中对应的限流标识,获取包括多个级别时间周期及对应限流阈值的多级限流规则;

5、步骤s2:根据限流标识获取多级限流规则中的第一级时间周期内访问者的访问次数,若访问次数小于等于多级限流规则的第一级限流阈值,则将下一级时间周期内访问者的访问次数与下一级限流阈值进行比对,直至访问次数大于限流阈值或者完成所有级别的比对;

6、步骤s3:若某个级别时间周期内访问者的访问次数大于对应的限流阈值,则执行步骤s31:限流接口对访问者进行限流处理;

7、否则执行步骤s32:保存当前访问记录并将访问者的最高级时间周期之外的访问数据删除。

8、优选地,在步骤s1中,所述生成访问者在限流接口中对应的限流标识包括:

9、获取访问者的 ip 地址和限流接口中预设的限流关键字,所述限流关键字用于区分限流类型;

10、获取限流接口的连接点签名,根据连接点签名提取方法签名;

11、根据方法签名获取限流接口的类名称和方法名称,将所述限流关键字、ip地址、类名称和方法名称进行拼接形成限流标识。

12、优选地,所述限流接口是由普通接口添加限流注解后形成的;

13、所述生成访问者在限流接口中对应的限流标识之前包括:

14、若访问者请求访问的接口为包括限流注解的所述限流接口,通过拦截器对访问者的访问请求进行拦截。

15、进一步地,所述普通接口添加限流注解包括:

16、创建自定义限流注解,声明自定义限流注解的属性,为需要限流的接口添加所述自定义限流注解;

17、为所述自定义限流注解添加元注解,所述元注解用于控制自定义限流注解的行为和作用范围;

18、于所述自定义限流注解的属性中添加多级限流规则。

19、进一步地,在步骤s1中,所述获取包括多个级别时间周期及对应限流阈值的多级限流规则之前包括:

20、判断限流接口是否需要防止请求重复提交,若是,则在所述多级限流规则的第一级时间周期和限流阈值之前插入防重复提交时间周期和防重复提交限流阈值,在访问者访问限流接口时对限流接口进行限流。

21、优选地,在步骤s32中,所述保存当前访问记录包括:

22、生成访问者的访问标识,所述访问标识用于区分同一访问者在同一时间段内的多个请求;

23、将所述访问标识、访问者访问限流接口的时间标识和限流标识的映射关系进行存储;

24、为所述映射关系设置存储过期时间,所述存储过期时间为所述多级限流规则中的最高级时间周期。

25、进一步地,所述步骤s2和步骤s32被配置为在redis的lua脚本中执行。

26、一种接口的多规则限流系统,包括:

27、限流规则生成模块,用于生成访问者在限流接口中对应的限流标识,获取包括多个级别时间周期及对应限流阈值的多级限流规则;

28、访问检查模块,用于根据限流标识获取多级限流规则中的第一级时间周期内访问者的访问次数,若访问次数小于多级限流规则的第一级限流阈值,则将下一级时间周期内访问者的访问次数与下一级限流阈值进行比对,直至访问次数大于限流阈值或者完成所有级别的比对;

29、限流处理模块,用于在若某个级别访问次数大于限流阈值时,对接口进行限流处理,否则保存当前访问记录并将访问者的最高级时间周期之外的访问数据删除。

30、一种终端设备,所述终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序配置为实现如上所述的多规则限流方法的步骤。

31、一种存储介质,其特征在于,所述存储介质上存储有多规则限流程序,所述多规则限流程序被处理器执行时实现如上所述的多规则限流方法的步骤。

32、上述技术方案中的一个技术方案具有如下优点或有益效果:

33、通过定义多级时间周期及对应的限流阈值,可以根据接口的实际使用情况和业务需求,轻松地调整各级别的限流策略,从而更有效地控制访问流量,防止因突发流量而导致的服务崩溃。多级限流规则允许对不同时间粒度下的访问频率进行精细化的控制,多层次的限流规则能够更好地保持系统稳定性,通过删除最高级时间周期之外的访问数据,有助于优化存储资源的使用,只保留必要的访问记录,可以减少数据存储的空间占用,提高系统的整体性能。

本文档来自技高网...

【技术保护点】

1.一种接口的多规则限流方法,其特征在于,包括:

2.根据权利要求1所述的多规则限流方法,其特征在于,在步骤S1中,所述生成访问者在限流接口中对应的限流标识包括:

3.根据权利要求1所述的多规则限流方法,其特征在于,所述限流接口是由普通接口添加限流注解后形成的;

4.根据权利要求3所述的多规则限流方法,其特征在于,所述普通接口添加限流注解包括:

5.根据权利要求4所述的多规则限流方法,其特征在于,在步骤S1中,所述获取包括多个级别时间周期及对应限流阈值的多级限流规则之前包括:

6.根据权利要求1所述的多规则限流方法,其特征在于,在步骤S32中,所述保存当前访问记录包括:

7.根据权利要求6所述的多规则限流方法,其特征在于,所述步骤S2和步骤S32被配置为在Redis的lua脚本中执行。

8.一种接口的多规则限流系统,其特征在于,包括:

9.一种终端设备,其特征在于,所述终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序配置为实现如权利要求1至7任一项所述的多规则限流方法的步骤。

10.一种存储介质,其特征在于,所述存储介质上存储有多规则限流程序,所述多规则限流程序被处理器执行时实现如权利要求1至7任一项所述的多规则限流方法的步骤。

...

【技术特征摘要】

1.一种接口的多规则限流方法,其特征在于,包括:

2.根据权利要求1所述的多规则限流方法,其特征在于,在步骤s1中,所述生成访问者在限流接口中对应的限流标识包括:

3.根据权利要求1所述的多规则限流方法,其特征在于,所述限流接口是由普通接口添加限流注解后形成的;

4.根据权利要求3所述的多规则限流方法,其特征在于,所述普通接口添加限流注解包括:

5.根据权利要求4所述的多规则限流方法,其特征在于,在步骤s1中,所述获取包括多个级别时间周期及对应限流阈值的多级限流规则之前包括:

6.根据权利要求1所述的多规则限流方法,其特征在于,在...

【专利技术属性】
技术研发人员:麦嘉伟孔令超吕火生
申请(专利权)人:佛山众陶联供应链服务有限公司
类型:发明
国别省市:

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

1