[发明专利]一种控制API单位时间内调用频次的系统及方法在审

专利信息
申请号: 201711098349.3 申请日: 2017-11-09
公开(公告)号: CN107885605A 公开(公告)日: 2018-04-06
发明(设计)人: 黄启庆;梁圣奇;王静;袁骞骞 申请(专利权)人: 郑州云海信息技术有限公司
主分类号: G06F9/54 分类号: G06F9/54
代理公司: 济南舜源专利事务所有限公司37205 代理人: 刘雪萍
地址: 450000 河南省郑州市*** 国省代码: 河南;41
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 控制 api 单位 时间内 调用 频次 系统 方法
【说明书】:

技术领域

发明属于API接口访问领域,具体涉及一种控制API单位时间内调用频次的系统及方法。

背景技术

单位时间内访问频次,单位时间即每分钟/每小时/每天,访问频次是调用频次,即调用次数。

队列,队列是一种特殊的线性表,特殊之处在于它只允许在表的前端进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。

API,Application Programming Interface的简称,应用程序编程接口。

在开发接口服务器的过程中,为了防止客户端对于接口的滥用,保护服务器的资源,通常来说我们会对于服务器上的各种API接口进行调用次数的限制。比如对于某个用户,他在一个时间段(interval)内,比如1分钟,调用服务器接口的次数不能够大于一个上限(limit),比如说100 次,如果用户调用接口的次数超过上限的话,就直接拒绝用户的请求,返回错误信息。

API调用频次控制,目前多采用按单位时间分隔的方式,如:某个API限制每分钟最大可调用次数为10,则每次拦截到调用请求时,将当前分钟的调用次数加一,下次再拦截到该API的调用请求时,如果两次请求时间属于同一分钟,则将该分钟的调用次数加一;如果不属于同一分钟(即使两次调用时间间隔仅1秒),也会记入下一分钟的调用次数。

上述统计方式是不准确的,如10点49分50秒至10点49分59秒,该API被调用了10次;10点50分0秒至10点50分10秒,该API又被调用了10次,这样实际上该API20秒内被调用了20次,超出了每分钟最大可调用次数10次。

此为现有技术的不足,因此,针对现有技术中的上述缺陷,提供一种控制API单位时间内调用频次的系统及方法,是非常有必要的。

发明内容

本发明的目的在于,针对上述API调用频次控制不准确的缺陷,提供一种控制API单位时间内调用频次的系统及方法,以解决上述技术问题。

为实现上述目的,本发明给出以下技术方案:

一种控制API单位时间内调用频次的系统,包括:

队列分配模块,用于给每个API分配一个队列,队列最大长度等于关联API单位时间内最大允许访问频次;

API调用信息获取模块,用于拦截到API调用请求时,获取该API分配的队列,获取该队列的最大长度,获取该队列的实际长度,获取该队列的队头时间戳,获取当前时间戳;

判断模块,用于判断是否符合队列操作条件,以及判断是否符合API调用条件;

队列操作模块,用于当符合队列操作条件时,对队列进行操作;

API调用动作模块,用于当符合API调用条件时,允许此次API调用,或者,当不符合API调用条件时,阻止此次API调用。

进一步地,判断模块包括队列长度判断单元、时间戳计算单元以及时间戳差值判断单元;

队列长度判断单元,用于判断API对应的队列实际长度是否小于该队列的最大长度;

时间戳计算单元,用于当API对应的队列实际长度等于该队列的最大长度时,用当前时间戳减去队头时间戳;

时间戳差值判断单元,用于判断当前时间戳与队头时间戳的差值是否小于单位时间。

进一步地,队列操作模块,当符合队列操作条件时,对队列进行操作,具体包括:

当API对应的队列实际长度小于该队列的最大长度时,将当前时间戳插入队尾;

或者,当API对应的队列长度等于该队列的最大长度,且当前时间戳与队头时间戳的差值不小于单位时间时,删除队头时间戳,将当前时间戳插入队尾。

进一步地,API调用动作模块,用于当符合API调用条件时,允许此次API调用,或者,当不符合API调用条件时,阻止此次API调用,具体包括:

当API对应的队列实际长度小于该队列最大长度时,或者,当API对应的队列实际长度等于该队列最大长度,且当前时间戳与队头时间戳的差值不小于单位时间时,允许此次API调用;

当API对应的队列实际长度等于该队列最大长度,且当前时间戳与队头时间戳的差值小于单位时间时,阻止此次API调用。

进一步地,队头时间戳和当前时间戳精确到秒。

本发明还给出如下技术方案:

一种控制API单位时间内调用频次的方法,包括如下步骤:

步骤1.给每个API分配一个队列,队列最大长度等于关联API单位时间内最大允许访问频次;

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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