[发明专利]一种分布式限流方法有效
申请号: | 202011479920.8 | 申请日: | 2020-12-15 |
公开(公告)号: | CN112637082B | 公开(公告)日: | 2023-03-31 |
发明(设计)人: | 康少雄;江海龙;吴海波;郭倩;李兆楠 | 申请(专利权)人: | 银盛支付服务股份有限公司 |
主分类号: | H04L47/20 | 分类号: | H04L47/20;H04L47/215 |
代理公司: | 深圳市深可信专利代理有限公司 44599 | 代理人: | 刘昌刚 |
地址: | 518000 广东省深圳市龙华*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分布式 限流 方法 | ||
本发明提供了一种分布式限流方法,包括以下步骤:S1、调用方调用尝试限流tryAcquire方法限流,输入方法入参信息;S2、使用System.currentTimeMillis()获取当前系统毫秒时间,记为尝试限流开始时间tryStartTime;S3、组装限流key;S4、采用Redis执行Lua脚本,获取返回值;S5、判断获取的返回值是否等于1,当返回值等于1时,则返回true给目标业务,即放行;当返回值不等于1时,则返回false给目标业务,即限流。实现了业务接口的限流,有效屏蔽异常请求,降低系统负载,实现了调用外部接口的分布式限流控制,降低系统负载,提升系统可用性,提升接口成功率。
技术领域
本发明涉及流量管理技术领域,具体的,本发明涉及一种分布式限流方法。
背景技术
现有业务系统仅支持接入层限流,比如通过Array硬件负载均衡或Nginx负载均衡,配置单IP在单位时间内的应用访问次数限制,例如每个ip的应用访问次数限制在300次/s。但业务接口缺乏限制,致使恶意请求或无用请求过多时会导致系统负载高,甚至出现宕机风险。
部分第三方接口如微信特约商户报备,限制接口每秒调用1次,报备系统一般采用分布式部署,必须采用分布式限流方案,控制请求速率,降低系统负载。现有系统业务限流方案如Guava和Hystrix等仅支持单机令牌桶和漏桶算法限流,Sentinel虽支持分布式限流,但需要集群部署,部署复杂度高,实现原理复杂,可控性低。
发明内容
为了克服现有技术的不足,本发明提供了一种分布式限流方法,以解决上述的技术问题。
本发明解决其技术问题所采用的技术方法是:一种分布式限流方法,其改进之处在于:包括以下的步骤:S1、调用方调用尝试限流tryAcquire方法限流,输入方法入参信息,方法入参信息包括但不限于第一限流关键字key、第一限流时间limitTime、第一限流时间内最大限流数limitMax、第一当前获取流量个数acquireNum和第一尝试等待时间tryTimeMills;S2、使用System.currentTimeMillis()获取当前系统毫秒时间,记为尝试限流开始时间tryStartTime,System.currentTimeMillis()即Java提供的API,其作用是返回毫秒为单位的当前系统时间;S3、组装限流key;S4、采用Redis执行Lua脚本,获取返回值;S5、判断获取的返回值是否等于1,当返回值等于1时,则返回true给目标业务,即放行;当返回值不等于1时,则返回false给目标业务,即限流。
在上述方法中,步骤S3,包括以下的步骤:
S31、使用System.currentTimeMillis()获取当前系统时间毫秒值,记为当前限流时间curLimitTime;
S32、将第一限流时间limitTime乘以1000,得到第一限流时间limitTime的毫秒值;
S33、使用当前限流时间curLimitTime除以第一限流时间limitTime的毫秒值,得到当前系统时间所属的限流区间值;
S34、使用第一限流关键字key加上当前系统时间所属的限流区间值,得到限流key。
在上述方法中,步骤S4,包括以下的步骤:
S41、获取Lua脚本入参信息,Lua脚本入参信息包括但不限于第二限流关键字key、第二限流时间内最大限流数limitMax、第二限流时间limitTime和第二当前获取流量个数acquireNum;
S42、使用Lua脚本执行Redis的Get指令,获取当前第二限流关键字key累计值,记为current,如果第二限流关键字key存在,则返回累计值给current;如果第二key不存在,则默认第二key累计值为0;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于银盛支付服务股份有限公司,未经银盛支付服务股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011479920.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种耐高温低压变高电阻EPDM混炼胶
- 下一篇:一种健康藕汁饮品的制备方法