[发明专利]一种应用程序接口限流的方法及装置在审
申请号: | 201910728399.8 | 申请日: | 2019-08-08 |
公开(公告)号: | CN110417678A | 公开(公告)日: | 2019-11-05 |
发明(设计)人: | 宋喆;魏金雷;杨继伟 | 申请(专利权)人: | 浪潮云信息技术有限公司 |
主分类号: | H04L12/819 | 分类号: | H04L12/819;H04L29/08 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 李世喆 |
地址: | 250100 山东省济南市高*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 应用程序接口 令牌桶 令牌 限流 请求调用 调用 崩溃 拦截 取出 外部 | ||
本发明提供了一种应用程序接口限流的方法及装置,该方法,包括:预先为应用程序接口设置令牌桶;在所述令牌桶中设置至少一个令牌;拦截外部发来的调用所述应用程序接口的请求;判断所述令牌桶中是否存在令牌,如果是,则从所述令牌桶中取出任一令牌,允许所述请求调用所述应用程序接口,否则,不允许所述请求调用所述应用程序接口。本发明提供了一种应用程序接口限流的方法及装置,能够更加方便地避免崩溃的发生。
技术领域
本发明涉及计算机技术领域,特别涉及一种应用程序接口限流的方法及装置。
背景技术
云计算作为一种创新型的计算模式,云服务平台为用户提供便捷的服务的同时,面临着复杂的网络环境。由于云服务平台的业务应用系统的负载能力有限,当存在大量的非预期的请求时,业务应用系统可能因为压力过大而崩溃。
在现有技术中,一般通过提升业务应用系统负载能力的方式来避免崩溃的情况。这需要从软件、硬件等各个方面对之前的业务应用系统进行修改,工作量较大,比较复杂。
发明内容
本发明实施例提供了一种应用程序接口限流的方法及装置,能够更加方便地避免崩溃的发生。
一方面,本发明实施例提供了一种应用程序接口限流的方法,包括:
预先为应用程序接口设置令牌桶;
在所述令牌桶中设置至少一个令牌;
拦截外部发来的调用所述应用程序接口的请求;
判断所述令牌桶中是否存在令牌,如果是,则从所述令牌桶中取出任一令牌,允许所述请求调用所述应用程序接口,否则,不允许所述请求调用所述应用程序接口。
可选地,
该方法进一步包括:
预先设置所述令牌桶的最大容量;
所述在所述令牌桶中设置至少一个令牌,包括:
周期性地生成新的令牌,判断所述令牌桶中令牌的数量是否小于所述令牌桶的最大容量,如果是,则将新生成的令牌放入所述令牌桶中,否则,将新生成的令牌丢弃。
可选地,
该方法进一步包括:
确定所述应用程序接口对应的每秒查询率;
所述周期性地生成新的令牌,包括:
以1/r为周期,周期性地生成新的令牌,其中,r为所述应用程序接口对应的每秒查询率。
可选地,
在所述判断所述令牌桶中是否存在令牌之前,进一步包括:
判断所述请求中是否携带有所述应用程序接口对应的所述令牌桶中的令牌,如果是,则允许所述请求调用所述应用程序接口,否则,执行所述判断所述令牌桶中是否存在令牌;
在所述从所述令牌桶中取出任一令牌之后,进一步包括:
将被提取出的令牌发送给发出所述请求的调用方,使得所述调用方每次调用所述应用程序接口时均在请求中携带所述令牌。
可选地,
所述在所述令牌桶中设置至少一个令牌之后,进一步包括:
为每个所述令牌设置有效期;
当判断出所述请求中携带有所述应用程序接口对应的所述令牌桶中的令牌时,执行:
判断所述请求中携带的所述令牌是否在所述令牌的有效期内,如果是,则执行所述允许所述请求调用所述应用程序接口,否则,执行所述判断所述令牌桶中是否存在令牌。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮云信息技术有限公司,未经浪潮云信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910728399.8/2.html,转载请声明来源钻瓜专利网。