System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种系统限流的方法、装置、设备和可读存储介质制造方法及图纸_技高网

一种系统限流的方法、装置、设备和可读存储介质制造方法及图纸

技术编号:41144259 阅读:2 留言:0更新日期:2024-04-30 18:13
本申请提供一种系统限流的方法、装置、设备和可读存储介质,该方法包括,通过预设算法,判断待处理系统请求是否通过,其中,预设算法包括滑动窗口算法和令牌桶算法;在判断待处理系统请求通过时,判断待处理系统请求是否符合限流规则,其中,限流规则包括预设地址来源、预设组织、预设路由、预设路由组和自定义规则中的至少一个。通过该方法可以达到准确的进行系统限流的过程的效果。

【技术实现步骤摘要】

本申请涉及系统限流的领域,具体而言,涉及一种系统限流的方法、装置、设备和可读存储介质


技术介绍

1、目前,在高并发、分布式环境下,传统的系统限流方案往往存在一些问题。例如,只通过ip或者路由的限流方式逻辑过于简单,难以应对复杂的请求场景。

2、传统方案无法灵活地调整限流策略,无法满足不同需求的个性化要求,导致系统限流无法准确进行。

3、因此,如何准确的进行系统限流的过程,是一个需要解决的技术问题。


技术实现思路

1、本申请实施例的目的在于提供一种系统限流的方法,通过本申请的实施例的技术方案可以达到准确的进行系统限流的过程的效果。

2、第一方面,本申请实施例提供了一种系统限流的方法,包括,通过预设算法,判断待处理系统请求是否通过,其中,预设算法包括滑动窗口算法和令牌桶算法;在判断待处理系统请求通过时,判断待处理系统请求是否符合限流规则,其中,限流规则包括预设地址来源、预设组织、预设路由、预设路由组和自定义规则中的至少一个。

3、本申请在上述实施例中,通过核心算法滑动窗口算法和令牌桶算法进行第一次的系统限流,将不符合要求的请求进行拦截,然后再将通过的请求进行二次的限流规则限流,达到多重限流的过程,可以达到准确的进行系统限流的过程的效果。

4、在一些实施例中,通过预设算法,判断待处理系统请求是否通过,包括:通过滑动窗口算法,判断待处理系统请求是否通过;和通过令牌桶算法,判断待处理系统请求是否通过。

5、本申请在上述实施例中,可以通过滑动窗口算法和令牌桶算法分别判断待处理系统请求是否通过,达到双重准确判断的效果。

6、在一些实施例中,通过滑动窗口算法,判断待处理系统请求是否通过,包括:将时间按照时间戳划分为多个区间,并预设窗口大小和最大请求次数;累加处理系统请求对应的请求次数,确定总请求次数是否大于等于最大请求次数,其中,确定总请求次数大于等于最大请求次数,待处理系统请求未通过,确定总请求次数小于最大请求次数,待处理系统请求通过;根据当前时间戳和预设窗口大小,移除当前窗口外的数据,并将当前窗口内的数据按照有序数据结构进行存储。

7、本申请在上述实施例中,通过当前累计的请求次数和预设的最大请求次数进行对比,可以确定当前请求是否需要拦截,此外,还可以对预设的窗口内数据进行单独的存储,可以保证请求可以按照一定的顺序存储,节省了内存的占用空间。

8、在一些实施例中,通过令牌桶算法,判断待处理系统请求是否通过,包括:按照预设速率生成令牌,并将生成的令牌存入令牌桶,其中,当令牌桶存满时,多余的令牌会被丢弃,令牌桶是通过键值类型结构存储的令牌;尝试从令牌桶中为待处理系统请求获取令牌,其中,若从令牌桶中为待处理系统请求获取到了令牌,则待处理系统请求通过,若从令牌桶中没有为待处理系统请求获取到令牌,则待处理系统请求未通过。

9、本申请在上述实施例中,将待处理系统请求匹配生成的令牌,只要待处理系统能够匹配令牌,即可通过请求,未匹配到令牌的请求,即可拦截,达到准确判断的效果。

10、在一些实施例中,在在判断待处理系统请求通过时,判断待处理系统请求是否符合限流规则之后,还包括:判断待处理系统请求不符合限流规则时,通过持久化数据库和脚本的方式进行限流。

11、本申请在上述实施例中,通过持久化数据库和脚本的方式进行限流,可以保证限流操作的原子性。

12、在一些实施例中,在在判断待处理系统请求通过时,判断待处理系统请求是否符合限流规则之后,还包括:在判断待处理系统请求未通过时或者待处理系统请求不符合限流规则时,拦截待处理系统请求。

13、本申请在上述实施例中,可以通过限流规则进行第二次限流判断,达到快速准确限流的效果。

14、在一些实施例中,其特征在于,在系统限流运行时,限流规则支持热更新。

15、本申请在上述实施例中,通过限流规则的热更新,即使在运行时修改限流配置,也无需重启服务。

16、第二方面,本申请实施例提供了一种系统限流的装置,包括:

17、第一判断模块,用于通过预设算法,判断待处理系统请求是否通过,其中,预设算法包括滑动窗口算法和令牌桶算法;

18、第二判断模块,用于在判断待处理系统请求通过时,判断待处理系统请求是否符合限流规则,其中,限流规则包括预设地址来源、预设组织、预设路由、预设路由组和自定义规则中的至少一个。

19、可选的,第一判断模块具体用于:

20、通过滑动窗口算法,判断待处理系统请求是否通过;

21、和

22、通过令牌桶算法,判断待处理系统请求是否通过。

23、可选的,第一判断模块具体用于:

24、将时间按照时间戳划分为多个区间,并预设窗口大小和最大请求次数;

25、累加处理系统请求对应的请求次数,确定总请求次数是否大于等于最大请求次数,其中,确定总请求次数大于等于最大请求次数,待处理系统请求未通过,确定总请求次数小于最大请求次数,待处理系统请求通过;

26、根据当前时间戳和预设窗口大小,移除当前窗口外的数据,并将当前窗口内的数据按照有序数据结构进行存储。

27、可选的,第一判断模块具体用于:

28、按照预设速率生成令牌,并将生成的令牌存入令牌桶,其中,当令牌桶存满时,多余的令牌会被丢弃,令牌桶是通过键值类型结构存储的令牌;

29、尝试从令牌桶中为待处理系统请求获取令牌,其中,若从令牌桶中为待处理系统请求获取到了令牌,则待处理系统请求通过,若从令牌桶中没有为待处理系统请求获取到令牌,则待处理系统请求未通过。

30、可选的,所述装置还包括:

31、限流模块,用于所述第二判断模块在判断待处理系统请求通过时,判断待处理系统请求是否符合限流规则之后,判断待处理系统请求不符合限流规则时,通过持久化数据库和脚本的方式进行限流。

32、可选的,所述装置还包括:

33、拦截模块,用于所述第二判断模块在判断待处理系统请求通过时,判断待处理系统请求是否符合限流规则之后,在判断待处理系统请求未通过时或者待处理系统请求不符合限流规则时,拦截待处理系统请求。

34、可选的,在系统限流运行时,限流规则支持热更新。

35、第三方面,本申请实施例提供一种电子设备,包括处理器以及存储器,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如上述第一方面提供的所述方法中的步骤。

36、第四方面,本申请实施例提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时运行如上述第一方面提供的所述方法中的步骤。

37、本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说明书、权本文档来自技高网...

【技术保护点】

1.一种系统限流的方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述通过预设算法,判断待处理系统请求是否通过,包括:

3.根据权利要求2所述的方法,其特征在于,所述通过滑动窗口算法,判断待处理系统请求是否通过,包括:

4.根据权利要求2所述的方法,其特征在于,所述通过令牌桶算法,判断待处理系统请求是否通过,包括:

5.根据权利要求1-4任一项所述的方法,其特征在于,在所述在判断所述待处理系统请求通过时,判断所述待处理系统请求是否符合限流规则之后,所述方法还包括:

6.根据权利要求1-4任一项所述的方法,其特征在于,在所述在判断所述待处理系统请求通过时,判断所述待处理系统请求是否符合限流规则之后,所述方法还包括:

7.根据权利要求1-4任一项所述的方法,其特征在于,在所述系统限流运行时,所述限流规则支持热更新。

8.一种系统限流的装置,其特征在于,包括:

9.一种电子设备,其特征在于,包括:

10.一种计算机可读存储介质,其特征在于,包括:

【技术特征摘要】

1.一种系统限流的方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述通过预设算法,判断待处理系统请求是否通过,包括:

3.根据权利要求2所述的方法,其特征在于,所述通过滑动窗口算法,判断待处理系统请求是否通过,包括:

4.根据权利要求2所述的方法,其特征在于,所述通过令牌桶算法,判断待处理系统请求是否通过,包括:

5.根据权利要求1-4任一项所述的方法,其特征在于,在所述在判断所述待处理系统请求通过时,判断所述待处理...

【专利技术属性】
技术研发人员:郑明阳张轩铭周雷皓唐俭马立军高玉石
申请(专利权)人:北京轻松怡康信息技术有限公司
类型:发明
国别省市:

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

1