CN110908808B - 一种控制api调用资源的方法和装置 - Google Patents
一种控制api调用资源的方法和装置 Download PDFInfo
- Publication number
- CN110908808B CN110908808B CN201811076287.0A CN201811076287A CN110908808B CN 110908808 B CN110908808 B CN 110908808B CN 201811076287 A CN201811076287 A CN 201811076287A CN 110908808 B CN110908808 B CN 110908808B
- Authority
- CN
- China
- Prior art keywords
- key
- target
- api
- instance
- resource
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
- G06F9/548—Object oriented; Remote method invocation [RMI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/54—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Telephonic Communication Services (AREA)
- Exchange Systems With Centralized Control (AREA)
Abstract
本发明公开了一种控制API调用资源的方法和装置,属于计算机技术领域。所述方法包括:根据目标API的所有调用账户的资源key及每个所述资源key的调用频率限制,创建所述目标API的资源key实例池;当接收到所述目标API的调用请求时,在所述目标API的资源key实例池中随机选择一个key实例作为目标key实例;反馈所述目标key实例对应的目标资源key,并从所述目标API的资源key实例池中删除所述目标key实例。采用本发明,可以有效控制API的调用,保证API调用资源的利用率。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种控制API调用资源的方法和装置。
背景技术
目前企业业务系统的功能越来越多、架构越来越复杂,大的系统往往会拆分成多个小的系统,拆分后的系统与系统之间通过调用对方提供的API来进行数据共享和业务交互。
为了保证系统的稳定性和高可用性,避免过量请求导致系统崩溃,或者被某一接入方频繁占用而影响其他接入方的使用,同时兼顾API的接口资源利用率,接口提供方会对API的调用频率做一定限制,即限制某调用账户(一个调用账户对应一个资源key)单位时间内对API的调用次数,调用次数超过时将直接返回失败信息或将账户加入黑名单中。
相应的,在对接此类系统时,一方面为了避免发起过量调用而导致大量失败,另一方面为了避免过量调用而被接口提供方拉入黑名单,接口调用方同样需要对API的调用进行有效的保护。故而,目前亟需一种能够有效控制API的调用,保证API的接口资源利用率的API的调用方法。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种控制API调用资源的方法和装置。所述技术方案如下:
第一方面,提供了一种控制API调用资源的方法,所述方法包括:
根据目标API的所有调用账户的资源key及每个所述资源key的调用频率限制,创建所述目标API的资源key实例池;
当接收到所述目标API的调用请求时,在所述目标API的资源key实例池中随机选择一个key实例作为目标key实例;
反馈所述目标key实例对应的目标资源key,并从所述目标API的资源key实例池中删除所述目标key实例。
可选的,所述反馈所述目标key实例对应的目标资源key之后,还包括:
将所述调用请求的接收时间和所述目标key实例的标识信息,按接收时间由近到远对应存储在所述目标资源key的请求队列中。
可选的,所述方法还包括:
根据所述目标资源key的调用频率限制确定所述目标资源key的回收临界时长;
将所述目标资源key的请求队列中对应的接收时间距当前时间大于所述回收临界时长的key实例确定为待回收key实例;
将所述待回收key实例添加至所述资源key实例池,并在所述目标资源key的请求队列中删除所述待回收key实例的对应项。
可选的,所述方法还包括:
根据所述目标资源key的调用频率限制确定所述目标资源key的回收临界时长和回收临界次数,其中,所述回收临界次数取值为N;
如果在所述目标资源key的请求队列中,按接收时间由近到远的倒数第N个对应项的接收时间距当前时间大于所述回收临界时长,则将倒数第N个对应项之后的key实例确定为待回收key实例;
将所述待回收key实例添加至所述资源key实例池,并在所述目标资源key的请求队列中删除所述待回收key实例的对应项。
可选的,所述方法还包括:
当接收到所述目标API的调用请求时,如果所述目标API的资源key实例池中不存在可用的key实例,则在任一资源key的回收处理触发后,在所述目标API的资源key实例池中重新随机选择一个key实例作为目标key实例。
可选的,所述目标API的资源key实例池基于Redis集合创建。
第二方面,提供了一种控制API调用资源的装置,所述装置包括:
创建模块,用于根据目标API的所有调用账户的资源key及每个所述资源key的调用频率限制,创建所述目标API的资源key实例池;
选择模块,用于当接收到所述目标API的调用请求时,在所述目标API的资源key实例池中随机选择一个key实例作为目标key实例;
反馈模块,用于反馈所述目标key实例对应的目标资源key,并从所述目标API的资源key实例池中删除所述目标key实例。
可选的,所述装置还包括:
存储模块,用于在反馈所述目标key实例对应的目标资源key之后,将所述调用请求的接收时间和所述目标key实例的标识信息,按接收时间由近到远对应存储在所述目标资源key的请求队列中。
可选的,所述装置还包括回收模块,用于:
根据所述目标资源key的调用频率限制确定所述目标资源key的回收临界时长;
将所述目标资源key的请求队列中对应的接收时间距当前时间大于所述回收临界时长的key实例确定为待回收key实例;
将所述待回收key实例添加至所述资源key实例池,并在所述目标资源key的请求队列中删除所述待回收key实例的对应项。
可选的,所述装置还包括回收模块,用于:
根据所述目标资源key的调用频率限制确定所述目标资源key的回收临界时长和回收临界次数,其中,所述回收临界次数取值为N;
如果在所述目标资源key的请求队列中,按接收时间由近到远的倒数第N个对应项的接收时间距当前时间大于所述回收临界时长,则将倒数第N个对应项之后的key实例确定为待回收key实例;
将所述待回收key实例添加至所述资源key实例池,并在所述目标资源key的请求队列中删除所述待回收key实例的对应项。
可选的,所述选择模块,还用于:
当接收到所述目标API的调用请求时,如果所述目标API的资源key实例池中不存在可用的key实例,则在任一资源key的回收处理触发后,在所述目标API的资源key实例池中重新随机选择一个key实例作为目标key实例。
可选的,所述目标API的资源key实例池基于Redis集合创建。
第三方面,提供了一种API调用设备,所述API调用设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如第一方面所述的控制API调用资源的方法。
第四方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如第一方面所述的控制API调用资源的方法。
本发明实施例中,根据目标API的所有调用账户的资源key及每个资源key的调用频率限制,创建目标API的资源key实例池,当接收到目标API的调用请求时,在目标API的资源key实例池中随机选择一个key实例作为目标key实例,反馈目标key实例对应的目标资源key,并从目标API的资源key实例池中删除目标key实例。这样,将API的调用资源进行实例化拆解,从而得到最细维度的key实例,并通过对key实例的获取和回收来实现API调用资源的高效调度,从而可以有效控制API的调用,保证API调用资源的利用率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种企业业务系统调用API的场景框架示意图;
图2是本发明实施例提供的一种控制API调用资源的方法流程图;
图3是本发明实施例提供的一种回收API调用资源的方法流程图;
图4是本发明实施例提供的一种回收API调用资源的方法流程图;
图5是本发明实施例提供的一种控制API调用资源的装置结构示意图;
图6是本发明实施例提供的一种控制API调用资源的装置结构示意图;
图7是本发明实施例提供的一种控制API调用资源的装置结构示意图;
图8是本发明实施例提供的一种API调用设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种控制API调用资源的方法,该方法的执行主体可以是部署在网络设备或网络设备组上的企业业务系统,并具体可以由企业业务系统中的API调用设备来实现,其中,企业业务系统可以是依托于一台或多台网络设备实现单项或多项业务功能的系统,在其运行过程中,可以将生成的数据或本地的业务功能通过API提供给其它系统,也可以通过调用其它系统的API来获取其它系统的数据或业务功能。对于API调用设备来说,对其它系统的API的调用请求可以统一到达API调用设备,并由API调用设备依据本实施例公开的控制API调用资源的方法来具体执行API的调用处理。具体的场景架构可以如图1所示。上述API调用设备可以包括处理器、存储器、收发器,处理器可以用于进行下述流程中的控制API调用资源的处理,存储器可以用于存储下述处理过程中需要的数据以及产生的数据,收发器可以用于接收和发送下述处理过程中的相关数据。
下面将结合具体实施方式,对图2所示的处理流程进行详细的说明,内容可以如下:
步骤201,根据目标API的所有调用账户的资源key及每个资源key的调用频率限制,创建目标API的资源key实例池。
在实施中,企业业务系统的技术人员可以预先在系统的API调用设备中设置本系统对其它系统的API的调用权限。以目标API为例,调用权限具体可以为目标API的所有调用账户及每个调用账户对于目标API的调用频率限制。设置完成之后,API调用设备可以将目标API的每个调用账户具化为相应的资源key,再基于每个资源key的调用频率限制创建目标API的资源key实例池,该资源key实例池中可以包含所有资源key的key实例,每个key实例可以理解为目标API调用资源的实例。举例来讲,目标API总共存在两个资源key,即keyx和keyy其中,keyx的调用频率限制为每分钟调用次数不能超过10次,那么可以按对应的次数10实例化出“keyx-1、keyx-2、…、keyx-10”等共10个key实例,keyy的调用频率限制为每30秒调用次数不能超过20次,那么可以按对应的次数20实例化出“keyy-1、keyy-2、…、keyy-20”等共20个key实例,那么目标API的资源key实例池中可以存在“keyx-1、…、keyx-10、keyy-1、…、keyy-20”等30个key实例。可以看出,目标API的每个资源key的调用频率限制可以相同也可以不同。
步骤202,当接收到目标API的调用请求时,在目标API的资源key实例池中随机选择一个key实例作为目标key实例。
在实施中,API调用设备在创建完目标API的资源key实例池之后,可以基于该资源key实例池对目标API的调用资源进行管理。当企业业务系统需要与目标API所属的系统进行数据共享或业务交互时,API调用设备可以接收到目标API的调用请求,然后可以在目标API的资源key实例池中随机选择一个key实例作为目标key实例。
步骤203,反馈目标key实例对应的目标资源key,并从目标API的资源key实例池中删除目标key实例。
在实施中,API调用设备在随机选择了目标key实例之后,可以将目标key实例对应的目标资源key反馈给企业业务系统,从而,企业业务系统可以基于目标资源key所对应的调用账户调用目标API。同时,API管理可以在目标API的资源key实例池中删除目标key实例,以避免下次接收到目标API的调用请求时,目标key实例被重复选取。
可选的,API调用设备可以对API的资源key的调用情况进行记录,相应的,步骤203之后可以存在如下处理:将调用请求的接收时间和目标key实例的标识信息,按接收时间由近到远对应存储在目标资源key的请求队列中。
在实施中,每个资源key都可以对应有一个用于记录key实例选取情况的请求队列,在该请求队列中,可以按接收时间由近到远对应存储有已选取的资源key的key实例和相应的选取时间,这样,API调用设备在反馈目标key实例对应的目标资源key之后,可以将本次目标API的调用请求的接收时间和目标key实例的标识信息,按照接收时间由近到远对应存储在目标资源key的请求队列中。例如,具体可以参考表1,目标API存在keyx和keyy两个资源key,本次调用请求的接收时间为20:30:31,随机选择到的目标key实例为keyy-5,则可以在keyy请求队列的头部记录上述内容。
表1
可选的,API调用设备可以基于资源key的请求队列对key实例进行回收,如图3或图4所示,其中,图3所示的回收流程的具体处理可以如下:
步骤301,根据目标资源key的调用频率限制确定目标资源key的回收临界时长。
在实施中,API调用设备在确定了目标资源key的调用频率限制之后,可以根据该调用频率限制确定回收目标资源key的key实例的回收临界时长。其中,回收临界时长可以是用于触发key实例回收处理和筛选待回收key实例的预设条件。例如,目标资源key的调用频率限制为1分钟不超过10次调用,则目标资源key的回收临界时长可以是1分钟。
步骤302,将目标资源key的请求队列中确定对应的接收时间距当前时间大于回收临界时长的key实例确定为待回收key实例。
在实施中,API调用设备设置完目标资源key的回收临界时长后,可以持续或周期性检测目标资源key的请求队列中的所有对应项,选择其中接收时间距当前时间大于回收临界时长的部分对应项,然后根据选择出的对应项中的标识信息确定待回收key实例。
步骤303,将待回收key实例添加至资源key实例池,并在目标资源key的请求队列中删除待回收key实例的对应项。
在实施中,API调用设备确定了目标资源key的待回收key实例后,可以将这些待回收key实例添加至资源key实例池中,同时可以在目标资源key的请求队列中删除上述待回收key实例的对应项,这样,在每次回收处理之后,目标资源key的请求队列中仅保留接收时间距当前时间在回收临界时长内的对应项,从而一方面可以确保资源KEY实例不会被重复回收,另一方面也确保了请求队列的大小处于可控范围,不会无限制的增长而引发其他性能问题。
图4所示的回收流程的具体处理可以如下:
步骤401,根据目标资源key的调用频率限制确定目标资源key的回收临界时长和回收临界次数,其中,回收临界次数取值为N。
在实施中,API调用设备在确定了目标资源key的调用频率限制之后,可以根据该调用频率限制确定回收目标资源key的key实例的回收临界时长和回收临界次数。其中,回收临界时长和回收临界次数可以是用于触发key实例回收处理和筛选待回收key实例的预设条件。例如,目标资源key的调用频率限制为1分钟不超过10次调用,则目标资源key的回收临界时长可以为1分钟,回收临界次数可以为4次。
步骤402,如果在目标资源key的请求队列中,按接收时间由近到远的倒数第N个对应项的接收时间距当前时间大于回收临界时长,则将倒数第N个对应项之后的key实例确定为待回收key实例。
在实施中,API调用设备设置完目标资源key的回收临界时长和回收临界次数后,可以在目标资源key的请求队列中按照接收时间由近到远选取倒数第N个对应项,如果倒数第N个对应项的接收时间距当前时间大于回收临界时长,则可以选择接收时间在倒数第N个对应项的接收时间之前的对应项(即倒数第N个对应项之后的key实例),并将这些对应项的key实例确定为待回收key实例。这样,在回收key实例时从最早调用的key实例开始回收,可以有效减少正在使用的key实例被强行回收的情况。例如,目标资源key的调用频率限制为1分钟不超过10次调用,回收临界时长为1分钟,回收临界次数为4次,则如果检测到请求队列中按接收时间由近到远排列后的倒数第4项中的接收时间距当前时间大于1分钟,则将倒数第4项之后的多项的key实例确定为待回收key实例。
步骤403,将待回收key实例添加至资源key实例池,并在目标资源key的请求队列中删除待回收key实例的对应项。
具体处理可以参考步骤303。
值得一提的是,上述步骤301-303和步骤401-403均是单个资源key的key实例回收处理,API调用设备还可以对一个或多个资源key同时进行key实例的回收,即设置相同的回收触发条件,其它处理则与上述内容一致。
可选的,如果在调用目标API时,发现资源key实例池中没有可用的key实例,则可以等待回收处理完成后,再选择可用的key实例,相应的处理可以如下:当接收到目标API的调用请求时,如果目标API的资源key实例池中不存在可用的key实例,则在任一资源key的回收处理触发后,在目标API的资源key实例池中重新随机选择一个key实例作为目标key实例。
在实施中,当接收到目标API的调用请求时,API调用设备可以判断目标API的资源key实例池是否为空,如果是,即该资源key实例池中不存在可用的key实例,API调用设备则可以在任一资源key的回收处理触发后,在目标API的资源key实例池中重新随机选择一个key实例作为目标key实例。
可选的,如果调用目标API时,资源key实例池中没有可用的key实例,也可以立即触发一次目标API的所有资源key的key实例回收流程,相应的处理可以如下:将检测到目标API的资源key实例池中不存在可用的key实例设置为目标API的所有调用账户的资源key的回收触发条件。
在实施中,除了根据目标资源key的调用频率限制确定触发key实例回收处理的预设条件之外,API设备还可以将检测到目标API的资源key实例池中不存在可用的key实例设置为目标API的所有调用账户的资源key的回收触发条件,这样,当发现资源key实例池为空时,可以立即对所有资源key进行key实例回收,从而可以较为快速地对目标API的调用请求进行反馈。需要说明的是,在执行完本次回收处理后,可以对目标API的所有资源key的回收触发条件进行相应调整,例如,某资源key的回收处理为每隔1分钟触发一次,则可以以本次回收为计时起点重新开始计时,在本次回收1分钟之后进行下一次回收。
可选的,上述目标API的资源key实例池可以基于Redis集合创建,将并发控制交给Redis,降低了系统本身的并发控制复杂度,减少出错率;使用Redis原生的数据结构,将key实例的获取和回收进行分离,提升了API调用资源的控制效率;并可依托Redis集合进行分布式扩展。
本发明实施例中,根据目标API的所有调用账户的资源key及每个资源key的调用频率限制,创建目标API的资源key实例池,当接收到目标API的调用请求时,在目标API的资源key实例池中随机选择一个key实例作为目标key实例,反馈目标key实例对应的目标资源key,并从目标API的资源key实例池中删除目标key实例。这样,将API的调用资源进行实例化拆解,从而得到最细维度的key实例,并通过对key实例的获取和回收来实现API调用资源的高效调度,从而可以有效控制API的调用,保证API调用资源的利用率。
基于相同的技术构思,本发明实施例还提供了一种控制API调用资源的装置,如图5所示,所述装置包括
创建模块501,用于根据目标API的所有调用账户的资源key及每个所述资源key的调用频率限制,创建所述目标API的资源key实例池;
选择模块502,用于当接收到所述目标API的调用请求时,在所述目标API的资源key实例池中随机选择一个key实例作为目标key实例;
反馈模块503,用于反馈所述目标key实例对应的目标资源key,并从所述目标API的资源key实例池中删除所述目标key实例。
可选的,如图6所示,所述装置还包括:
存储模块504,用于在反馈所述目标key实例对应的目标资源key之后,将所述调用请求的接收时间和所述目标key实例的标识信息,按接收时间由近到远对应存储在所述目标资源key的请求队列中。
可选的,如图7所示,所述装置还包括回收模块505,用于:
根据所述目标资源key的调用频率限制确定所述目标资源key的回收临界时长;
将所述目标资源key的请求队列中对应的接收时间距当前时间大于所述回收临界时长的key实例确定为待回收key实例;
将所述待回收key实例添加至所述资源key实例池,并在所述目标资源key的请求队列中删除所述待回收key实例的对应项。
可选的,如图7所示,所述装置还包括回收模块505,用于:
根据所述目标资源key的调用频率限制确定所述目标资源key的回收临界时长和回收临界次数,其中,所述回收临界次数取值为N;
如果在所述目标资源key的请求队列中,按接收时间由近到远的倒数第N个对应项的接收时间距当前时间大于所述回收临界时长,则将倒数第N个对应项之后的key实例确定为待回收key实例;
将所述待回收key实例添加至所述资源key实例池,并在所述目标资源key的请求队列中删除所述待回收key实例的对应项。
可选的,所述选择模块502,还用于:
当接收到所述目标API的调用请求时,如果所述目标API的资源key实例池中不存在可用的key实例,则在任一资源key的回收处理触发后,在所述目标API的资源key实例池中重新随机选择一个key实例作为目标key实例。
可选的,所述目标API的资源key实例池基于Redis集合创建。
本发明实施例中,根据目标API的所有调用账户的资源key及每个资源key的调用频率限制,创建目标API的资源key实例池,当接收到目标API的调用请求时,在目标API的资源key实例池中随机选择一个key实例作为目标key实例,反馈目标key实例对应的目标资源key,并从目标API的资源key实例池中删除目标key实例。这样,将API的调用资源进行实例化拆解,从而得到最细维度的key实例,并通过对key实例的获取和回收来实现API调用资源的高效调度,从而可以有效控制API的调用,保证API调用资源的利用率。
需要说明的是:上述实施例提供的控制API调用资源的装置在控制API调用资源时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的控制API调用资源的装置与控制API调用资源的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图8是本发明实施例提供的API调用设备的结构示意图。该API调用设备800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器822(例如,一个或一个以上处理器)和存储器832,一个或一个以上存储应用程序882或数据888的存储介质830(例如一个或一个以上海量存储设备)。其中,存储器832和存储介质830可以是短暂存储或持久存储。存储在存储介质830的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对API调用设备中的一系列指令操作。更进一步地,中央处理器822可以设置为与存储介质830通信,在API调用设备800上执行存储介质830中的一系列指令操作。
API调用设备800还可以包括一个或一个以上电源826,一个或一个以上有线或无线网络接口850,一个或一个以上输入输出接口858,一个或一个以上键盘856,和/或,一个或一个以上操作系统881,例如Windows Server,Mac OS X,Unix,Linux,FreeBSD等等。
API调用设备800可以包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行上述控制API调用资源的指令。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种控制API调用资源的方法,其特征在于,所述方法包括:
根据目标API的所有调用账户的资源key及每个所述资源key的调用频率限制,创建所述目标API的资源key实例池;
当接收到所述目标API的调用请求时,在所述目标API的资源key实例池中随机选择一个key实例作为目标key实例;
反馈所述目标key实例对应的目标资源key,将所述调用请求的接收时间和所述目标key实例的标识信息,按接收时间由近到远对应存储在所述目标资源key的请求队列中,并从所述目标API的资源key实例池中删除所述目标key实例。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述目标资源key的调用频率限制确定所述目标资源key的回收临界时长;
将所述目标资源key的请求队列中对应的接收时间距当前时间大于所述回收临界时长的key实例确定为待回收key实例;
将所述待回收key实例添加至所述资源key实例池,并在所述目标资源key的请求队列中删除所述待回收key实例的对应项。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述目标资源key的调用频率限制确定所述目标资源key的回收临界时长和回收临界次数,其中,所述回收临界次数取值为N;
如果在所述目标资源key的请求队列中,按接收时间由近到远的倒数第N个对应项的接收时间距当前时间大于所述回收临界时长,则将倒数第N个对应项之后的key实例确定为待回收key实例;
将所述待回收key实例添加至所述资源key实例池,并在所述目标资源key的请求队列中删除所述待回收key实例的对应项。
4.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:
当接收到所述目标API的调用请求时,如果所述目标API的资源key实例池中不存在可用的key实例,则在任一资源key的回收处理触发后,在所述目标API的资源key实例池中重新随机选择一个key实例作为目标key实例。
5.根据权利要求1所述的方法,其特征在于,所述目标API的资源key实例池基于Redis集合创建。
6.一种控制API调用资源的装置,其特征在于,所述装置包括:
创建模块,用于根据目标API的所有调用账户的资源key及每个所述资源key的调用频率限制,创建所述目标API的资源key实例池;
选择模块,用于当接收到所述目标API的调用请求时,在所述目标API的资源key实例池中随机选择一个key实例作为目标key实例;
反馈模块,用于反馈所述目标key实例对应的目标资源key,并从所述目标API的资源key实例池中删除所述目标key实例;
存储模块,用于在反馈所述目标key实例对应的目标资源key之后,将所述调用请求的接收时间和所述目标key实例的标识信息,按接收时间由近到远对应存储在所述目标资源key的请求队列中。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括回收模块,用于:
根据所述目标资源key的调用频率限制确定所述目标资源key的回收临界时长;
将所述目标资源key的请求队列中对应的接收时间距当前时间大于所述回收临界时长的key实例确定为待回收key实例;
将所述待回收key实例添加至所述资源key实例池,并在所述目标资源key的请求队列中删除所述待回收key实例的对应项。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括回收模块,用于:
根据所述目标资源key的调用频率限制确定所述目标资源key的回收临界时长和回收临界次数,其中,所述回收临界次数取值为N;
如果在所述目标资源key的请求队列中,按接收时间由近到远的倒数第N个对应项的接收时间距当前时间大于所述回收临界时长,则将倒数第N个对应项之后的key实例确定为待回收key实例;
将所述待回收key实例添加至所述资源key实例池,并在所述目标资源key的请求队列中删除所述待回收key实例的对应项。
9.根据权利要求7或8所述的装置,其特征在于,所述选择模块,还用于:
当接收到所述目标API的调用请求时,如果所述目标API的资源key实例池中不存在可用的key实例,则在任一资源key的回收处理触发后,在所述目标API的资源key实例池中重新随机选择一个key实例作为目标key实例。
10.根据权利要求6所述的装置,其特征在于,所述目标API的资源key实例池基于Redis集合创建。
11.一种API调用设备,其特征在于,所述API调用设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至5任一所述的控制API调用资源的方法。
12.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至5任一所述的控制API调用资源的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811076287.0A CN110908808B (zh) | 2018-09-14 | 2018-09-14 | 一种控制api调用资源的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811076287.0A CN110908808B (zh) | 2018-09-14 | 2018-09-14 | 一种控制api调用资源的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110908808A CN110908808A (zh) | 2020-03-24 |
CN110908808B true CN110908808B (zh) | 2023-06-23 |
Family
ID=69812274
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811076287.0A Active CN110908808B (zh) | 2018-09-14 | 2018-09-14 | 一种控制api调用资源的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110908808B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112612611A (zh) * | 2020-12-24 | 2021-04-06 | 青岛海尔科技有限公司 | 一种信息处理的方法、装置及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103516781A (zh) * | 2012-06-27 | 2014-01-15 | 国际商业机器公司 | 用于实例化it服务的资源的方法和系统 |
CN107040479A (zh) * | 2016-02-04 | 2017-08-11 | 华为软件技术有限公司 | 一种云计算资源调节的方法和装置 |
CN108173842A (zh) * | 2017-12-26 | 2018-06-15 | 国家电网公司 | 基于openstack云平台的软件定义防火墙的部署优化方法 |
WO2018149263A1 (zh) * | 2017-02-15 | 2018-08-23 | 华为技术有限公司 | 一种网络业务实例化的方法及装置 |
-
2018
- 2018-09-14 CN CN201811076287.0A patent/CN110908808B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103516781A (zh) * | 2012-06-27 | 2014-01-15 | 国际商业机器公司 | 用于实例化it服务的资源的方法和系统 |
CN107040479A (zh) * | 2016-02-04 | 2017-08-11 | 华为软件技术有限公司 | 一种云计算资源调节的方法和装置 |
WO2018149263A1 (zh) * | 2017-02-15 | 2018-08-23 | 华为技术有限公司 | 一种网络业务实例化的方法及装置 |
CN108173842A (zh) * | 2017-12-26 | 2018-06-15 | 国家电网公司 | 基于openstack云平台的软件定义防火墙的部署优化方法 |
Non-Patent Citations (1)
Title |
---|
王新春 ; 钱向东 ; .基于并发执行时间配额控制的任务调度框架.信息技术与标准化.2012,(11),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN110908808A (zh) | 2020-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107688500B (zh) | 一种分布式任务处理方法、装置、系统及设备 | |
CN107241281B (zh) | 一种数据处理方法及其装置 | |
CN107977252A (zh) | 一种云平台业务的缩容方法、装置及云平台 | |
US9852220B1 (en) | Distributed workflow management system | |
US9038093B1 (en) | Retrieving service request messages from a message queue maintained by a messaging middleware tool based on the origination time of the service request message | |
CN105760240A (zh) | 分布式任务处理方法及装置 | |
CN111427670A (zh) | 任务调度方法和系统 | |
CN110471774A (zh) | 一种基于统一任务调度的数据处理方法及装置 | |
CN110908808B (zh) | 一种控制api调用资源的方法和装置 | |
CN103699419A (zh) | 一种虚拟机资源的处理方法和系统 | |
CN105468346A (zh) | 一种定时事件管理方法、存储方法、执行方法及相应装置 | |
CN115576684A (zh) | 任务处理方法、装置、电子设备及存储介质 | |
CN107463390B (zh) | 一种软件升级方法及升级服务器 | |
CN111158930A (zh) | 一种基于Redis的高并发延时任务系统和处理方法 | |
CN116389268A (zh) | 云手机回收的处理方法、装置和计算机设备、存储介质 | |
CN112306695A (zh) | 数据的处理方法、装置、电子设备及计算机存储介质 | |
CN116521338A (zh) | 消息队列的管控方法、装置、计算机设备和存储介质 | |
CN109558254B (zh) | 异步回调方法、系统、装置及计算机可读存储介质 | |
CN111756800A (zh) | 一种处理突发流量的方法和系统 | |
CN108154343B (zh) | 一种企业级信息系统的应急处理方法及系统 | |
CN115269730A (zh) | 宽表同步方法及装置 | |
CN101320443A (zh) | 一种电子工单的处理方法及处理装置 | |
CN114374657A (zh) | 一种数据处理方法和装置 | |
CN109117277A (zh) | 异步环境中模拟同步阻塞的方法及装置、存储介质、服务器、终端 | |
CN103259817A (zh) | 资源释放方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210804 Address after: 518000 b1-1302, building B, Kexing Science Park, No. 15, Keyuan Road, Science Park community, Yuehai street, Nanshan District, Shenzhen, Guangdong Applicant after: Shenzhen aijieyun Technology Co.,Ltd. Address before: 5 / F, building a, Guangqi Cultural Plaza, 2899 Xietu Road, Xuhui District, Shanghai, 200030 Applicant before: WANGSU SCIENCE & TECHNOLOGY Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |