[发明专利]一种应用程序接口限流的方法及装置在审
| 申请号: | 201910728399.8 | 申请日: | 2019-08-08 |
| 公开(公告)号: | CN110417678A | 公开(公告)日: | 2019-11-05 |
| 发明(设计)人: | 宋喆;魏金雷;杨继伟 | 申请(专利权)人: | 浪潮云信息技术有限公司 |
| 主分类号: | H04L12/819 | 分类号: | H04L12/819;H04L29/08 |
| 代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 李世喆 |
| 地址: | 250100 山东省济南市高*** | 国省代码: | 山东;37 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 应用程序接口 令牌桶 令牌 限流 请求调用 调用 崩溃 拦截 取出 外部 | ||
1.一种应用程序接口限流的方法,其特征在于,
预先为应用程序接口设置令牌桶;
包括:
在所述令牌桶中设置至少一个令牌;
拦截外部发来的调用所述应用程序接口的请求;
判断所述令牌桶中是否存在令牌,如果是,则从所述令牌桶中取出任一令牌,允许所述请求调用所述应用程序接口,否则,不允许所述请求调用所述应用程序接口。
2.根据权利要求1所述的方法,其特征在于,
进一步包括:
预先设置所述令牌桶的最大容量;
所述在所述令牌桶中设置至少一个令牌,包括:
周期性地生成新的令牌,判断所述令牌桶中令牌的数量是否小于所述令牌桶的最大容量,如果是,则将新生成的令牌放入所述令牌桶中,否则,将新生成的令牌丢弃。
3.根据权利要求2所述的方法,其特征在于,
进一步包括:
确定所述应用程序接口对应的每秒查询率;
所述周期性地生成新的令牌,包括:
以1/r为周期,周期性地生成新的令牌,其中,r为所述应用程序接口对应的每秒查询率。
4.根据权利要求1所述的方法,其特征在于,
在所述判断所述令牌桶中是否存在令牌之前,进一步包括:
判断所述请求中是否携带有所述应用程序接口对应的所述令牌桶中的令牌,如果是,则允许所述请求调用所述应用程序接口,否则,执行所述判断所述令牌桶中是否存在令牌;
在所述从所述令牌桶中取出任一令牌之后,进一步包括:
将被提取出的令牌发送给发出所述请求的调用方,使得所述调用方每次调用所述应用程序接口时均在请求中携带所述令牌。
5.根据权利要求4中所述的方法,其特征在于,
所述在所述令牌桶中设置至少一个令牌之后,进一步包括:
为每个所述令牌设置有效期;
当判断出所述请求中携带有所述应用程序接口对应的所述令牌桶中的令牌时,执行:
判断所述请求中携带的所述令牌是否在所述令牌的有效期内,如果是,则执行所述允许所述请求调用所述应用程序接口,否则,执行所述判断所述令牌桶中是否存在令牌。
6.一种应用程序接口限流的装置,其特征在于,包括:
针对应用程序接口的令牌桶、服务限流控制器和拦截器;
所述服务限流控制器,用于在所述令牌桶中设置至少一个令牌;
所述拦截器,用于拦截外部发来的调用所述应用程序接口的请求,判断所述令牌桶中是否存在令牌,如果是,则从所述令牌桶中取出任一令牌,允许所述请求调用所述应用程序接口,否则,不允许所述请求调用所述应用程序接口。
7.根据权利要求6所述的装置,其特征在于,
所述服务限流控制器,用于周期性地生成新的令牌,判断所述令牌桶中令牌的数量是否小于所述令牌桶的最大容量,如果是,则将新生成的令牌放入所述令牌桶中,否则,将新生成的令牌丢弃。
8.根据权利要求7所述的装置,其特征在于,
进一步包括:
确定单元,用于确定所述应用程序接口对应的每秒查询率;
所述服务限流控制器,在执行所述周期性地生成新的令牌时,用于以1/r为周期,周期性地生成新的令牌,其中,r为所述应用程序接口对应的每秒查询率。
9.根据权利要求6所述的装置,其特征在于,
所述拦截器,进一步用于在所述判断所述令牌桶中是否存在令牌之前,执行:
判断所述请求中是否携带有所述应用程序接口对应的所述令牌桶中的令牌,如果是,则允许所述请求调用所述应用程序接口,否则,执行所述判断所述令牌桶中是否存在令牌;
所述拦截器,进一步用于在所述从所述令牌桶中取出任一令牌之后,执行:将被提取出的令牌发送给发出所述请求的调用方,使得所述调用方每次调用所述应用程序接口时均在请求中携带所述令牌。
10.根据权利要求9中所述的装置,其特征在于,
所述服务限流控制器,用于在所述令牌桶中设置至少一个令牌之后,为每个所述令牌设置有效期;
所述拦截器,进一步用于当判断出所述请求中携带有所述应用程序接口对应的所述令牌桶中的令牌时,执行:
判断所述请求中携带的所述令牌是否在所述令牌的有效期内,如果是,则执行所述允许所述请求调用所述应用程序接口,否则,执行所述判断所述令牌桶中是否存在令牌。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮云信息技术有限公司,未经浪潮云信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910728399.8/1.html,转载请声明来源钻瓜专利网。





