【技术实现步骤摘要】
一种分布式多维度限流系统及方法
[0001]本专利技术涉及信息
,具体涉及一种分布式多维度限流系统及方法。
技术介绍
[0002]电信运营商行业现已进入大规模建设5G网络的时代,5G时代是云和网相互融合的时代,现有电信运营业务系统烟囱林立、数据分散、能力开放不足导致产品加载慢、支撑效率低、协同能力弱、数据基础差等情况,无法适应新云网融合形势下网络发展的要求。现如今电信运营商业务量大大增加,域内与域外、平台与租户、内部与外部的API调用流量呈指数型增长,当API调用量峰值过大时,服务提供方的应用系统的负载能力有限,如果非预期的请求对系统压力过大而拖垮整个业务应用系统,服务提供方和服务调用方的损失极为惨重,因此对接口安全控制和保护有着更高的要求。
[0003]一般是通过设置缓存、队列、令牌、分流等技术方式来实现限流,如果仅仅通过上述的被动限流方式将交易进行限流,该类方法灵活性较差,不能够进行灵活配置及精准高效地限流,同时以往的API网关限流为单点限流,若API网关采用分布式架构,无法共享统一的限流规则进行全局性的分 ...
【技术保护点】
【技术特征摘要】
1.一种分布式多维度限流系统,其特征在于,包括:限流规则配置模块、缓存中间件集群、Redis计数器模块、限流执行模块;所述限流规则配置模块,用于供用户配置限流规则;所述缓存中间件集群,用于作为分布式缓存存储限流规则配置;所述Redis计数器模块,用于作为请求次数计数器;所述限流执行模块,基于Spring Cloud Gateway框架,采用多节点集群部署,用于从Redis计数器模块获取服务是否通过限流校验的结果,进行限流执行,从而实现分布式网关限流。2.根据权利要求1所述的一种分布式多维度限流系统,其特征在于:在所述限流规则配置模块中,所述限流规则的类型包括服务级限流、应用级限流、全局级限流;限流配置参数包括限流规则的类型、调用次数阈值、单位时间。3.根据权利要求2所述的一种分布式多维度限流系统,其特征在于:所述限流规则配置模块向缓存中间件集群中发送限流规则配置消息,限流执行模块从缓存中间件获取限流规则配置消息,实现与所述限流规则配置模块、限流执行模块的信息交互。4.根据权利要求3所述的种分布式多维度限流系统及方法,其特征在于:所述Redis计数器模块存储滑动时间窗口内的请求次数;存储的数据结构为键值对,键为服务编码标识,同一个服务共用一条数据,值的数据类型为ZSET,依次存放网关获取请求时的时间戳,ZSET的长度即为请求次数。5.根据权利要求4所述的一种分布式多维度限流系统,其特征在于:所述限流执行模块基于Spring Cloud Gateway框架,集成spring
‑
boot
‑
starter
‑
data
‑
redis
‑
reactive框架,并创建自定义限流局部过滤器与自定义限流器,通过执行Redis Lua脚本,获取Redis计数器模块中相同限流标识键Key下的请求次数统计,进而实现分布式网关限流;其中,所述自定义限流局部过滤器,继承Spring Cloud Gateway框架的AbstractGatewayFilterFactory抽象类,重写filter方法,在filter方法中执行自定义限流器的方法,根据是否限流的判断结果进行处理,如果超过流量阈值则不予通过,当系统收到请求时会调用该方法实现限流;所述自定义限流器,继承Spring Cloud Gateway框架的AbstractRateLimiter抽象类,重写isAllowed方法,在isAllowed方法执行Redis Lua脚本,获取是否限流的判断结果。6.一种分布式多维度限流方法,采用如权利要求1~5任一项所述的系统实现分布式多维度限流,包括以下步骤:S1:配置限流规则用户配置限流规则,向缓存中间件集群发送限流规则配置信...
【专利技术属性】
技术研发人员:徐况,汪伟伟,李凌悦,贾成橙,王涛,
申请(专利权)人:科大国创云网科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。