买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种基于滑动窗口算法的分布式限流实现方法及系统_浪潮云信息技术股份公司_202111455363.0 

申请/专利权人:浪潮云信息技术股份公司

申请日:2021-12-01

公开(公告)日:2024-04-16

公开(公告)号:CN114189478B

主分类号:H04L47/22

分类号:H04L47/22;H04L47/24;H04L47/28;H04L47/32;H04L67/1042

优先权:

专利状态码:有效-授权

法律状态:2024.04.16#授权;2022.04.01#实质审查的生效;2022.03.15#公开

摘要:本发明公开了一种基于滑动窗口算法的分布式限流实现方法及系统,属于云原生领域;所述的方法具体步骤如下:S1利用Redis对限流数据的存储进行选型;S2选用Redis中的ZSet数据类型作为滑动窗口限流的技术资源;S3在Redis中设置唯一标识作为ZSet的key;S4利用Redis的资源回收机制给每个API的限流资源池设置存活时间;S5基于滑动窗口算法,将请求的Key设置为请求进入时刻的毫秒级时间戳+Redis中的自增Key对应的value数值;S6设置规则对API的流量进行计数并限制;本发明通过使用集群内部署的Redis集群作为限流功能的主要实现组件,保证了网关限流服务的云原生化和对集群环境的高适配性,符合当下大环境对服务生态的基本需求。

主权项:1.一种基于滑动窗口算法的分布式限流实现方法,其特征是所述的方法具体步骤如下:S1利用Redis对限流数据的存储进行选型;S2选用Redis中的ZSet数据类型作为滑动窗口限流的技术资源;S3在Redis中设置唯一标识作为ZSet的key;S4利用Redis的资源回收机制给每个API的限流资源池设置存活时间;S5基于滑动窗口算法,将请求的Key设置为请求进入时刻的毫秒级时间戳+Redis中的自增Key对应的value数值;S6设置规则对API的流量进行计数并限制;所述S5基于滑动窗口算法,将请求的Key设置为请求进入时刻的毫秒级时间戳+Redis中的自增Key对应的value数值的具体步骤如下:S501在Redis中维护一个自增Key,当每进入一个请求就将其加一;S502拼接毫秒级别时间戳作为请求进入的Key;S503将请求进入的秒级时间戳作为分数保存给ZSet中指定的Key作为Value值;所述S6针对每个被限流的API设置多个滑动窗口流量计数池,按照优先级对API进行分布式精准流量限制的具体步骤如下:S601在记录API请求时将当前限流时间窗口的开始时间作为过期分数节点,将ZSet中分数小于过期分数节点的Key进行批量失效;S602计算失效后的剩余有效请求数量,与单位时间内允许通过的限流次数进行对比;S603若小于限流次数,则允许通过并按照规则保存进ZSet;S604若大于等于限流次数,则拦截本次请求,不允许通过。

全文数据:

权利要求:

百度查询: 浪潮云信息技术股份公司 一种基于滑动窗口算法的分布式限流实现方法及系统

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。