[发明专利]一种基于Redis的限流方法在审

专利信息
申请号: 202011119315.X 申请日: 2020-10-19
公开(公告)号: CN112214268A 公开(公告)日: 2021-01-12
发明(设计)人: 段然;吴旭;张小虎;严永峰 申请(专利权)人: 天翼电子商务有限公司
主分类号: G06F9/448 分类号: G06F9/448;G06F9/50
代理公司: 暂无信息 代理人: 暂无信息
地址: 102200 北京市昌平*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 redis 限流 方法
【说明书】:

发明公开了一种基于Redis的限流方法,具体包括以下步骤:S1.服务收到请求;S2.服务对Redis发起请求,判断本次请求是否被限流;S3.服务根据返回结果判断拦截请求或放行请求。本发明具有以下优点:不必使用令牌生成器循环添加令牌,可节省资源;不必持续占用Redis存储资源;使用时间差值计算两次请求之间应恢复的令牌数,来代替循环添加令牌的令牌生成器;对接口信息设置超时时间,如果令牌桶恢复满则自动删除接口信息释放资源,且不影响正常的业务流程。

技术领域

本发明涉及IT与软件开发领域,特别涉及一种基于Redis的限流方法。

背景技术

由于API接口无法控制调用方的行为,因此当遇到瞬时请求量激增时,会导致接口占用过多服务器资源,使得其他请求响应速度降低或是超时,更有甚者可能导致服务器宕机。

限流是目前常用的接口保护手段之一。

限流是通过限制单位时间内接受的请求数,以避免请求数量激增导致服务器压力过大。

目前业内常用的限流框架主要有Sentinel、Hystrix等,但这些第三方框架都需要引入外部依赖,并且占用资源较高。

发明内容

本发明要解决的技术问题是克服现有技术的缺陷,提供一种基于Redis的限流方法。

为了解决上述技术问题,本发明提供了如下的技术方案:

本发明一种基于Redis的限流方法,采用令牌桶算法进行限流,令牌以固定速率生成,生成的令牌放入令牌桶中存放,如果令牌桶满了则多余的令牌会直接丢弃,当请求到达时,会尝试从令牌桶中取令牌,取到了令牌的请求可以执行,如果桶空了,那么尝试取令牌的请求会被限制,令牌桶算法既能够将所有的请求平均分布到时间区间内,又能接受服务器能够承受范围内的突发请求,具体包括以下步骤:

S1.服务收到请求;

S2.服务对Redis发起请求,判断本次请求是否被限流;

S3.服务根据返回结果判断拦截请求或放行请求。

与现有技术相比,本发明的有益效果如下:

1.不必使用令牌生成器循环添加令牌,可节省资源。

2.不必持续占用Redis存储资源。

和现有技术相比,主要创造性在于:

1.使用时间差值计算两次请求之间应恢复的令牌数,来代替循环添加令牌的令牌生成器。

2.对接口信息设置超时时间,如果令牌桶恢复满则自动删除接口信息释放资源,且不影响正常的业务流程。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:

图1是本发明的流程结构示意图;

图2是本发明的原理图。

具体实施方式

以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

实施例1

如图1-2所示,本发明提供一种基于Redis的限流方法,采用令牌桶算法进行限流,令牌以固定速率生成,生成的令牌放入令牌桶中存放,如果令牌桶满了则多余的令牌会直接丢弃,当请求到达时,会尝试从令牌桶中取令牌,取到了令牌的请求可以执行,如果桶空了,那么尝试取令牌的请求会被限制,令牌桶算法既能够将所有的请求平均分布到时间区间内,又能接受服务器能够承受范围内的突发请求,具体包括以下步骤:

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天翼电子商务有限公司,未经天翼电子商务有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202011119315.X/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top