一种配置API访问量的方法与流程

文档序号:13617405阅读:213来源:国知局
一种配置API访问量的方法与流程

本发明涉及信息技术领域,具体涉及一种配置api访问量的方法。



背景技术:

工业界常用的应用程序编程接口(applicationprogramminginterface,api)安全与管理平台是一套运行在数据中心、云服务中心的应用软件,针对api生产者、api消费者、api管理者等角色,提供了api网关、api门户、api生命周期管理、api监控、api密钥管理及api实用情况分析等组件功能,图1示出了api安全与管理平台的结构示意图。api安全与管理平台运行的系统环境包括:符合j2ee规范的中间件(例如:tomcat、weblogic等),oracle或mysql数据库。与传统的应用程序直接调用应用程序接口api不同,信息中心需要先启用api安全与管理软件,应用程序在调用资源内的应用程序接口(api)之前,会通过一个api网关,该网关能够根据某种调度策略实现对api的安全访问控制和动态调用,即api网关模块负责对整个api资源进行路由代理、性能分配。

如图2所示,api网关作为中间结点工作在应用程序与服务器api资源之间,起着api资源调度和控制的重要作用。比如假设1个api后台系统每秒最大支持100个并发请求,超过这个数值,系统就会崩溃,因此要对请求限制。假如目前有20个消费者订阅,平均1秒请求1个,峰值每秒请求10个,那么就要限制每个订阅的请求在10个以下。目前业界普遍采用一种“节气门”技术,通过服务等级协议(service-levelagreement,sla),设置每层服务协议最大可用的请求数目。例如,一级服务每小时最大5000个请求,二级服务每小时最大50个请求。比如设定了某个api最大可调用次数是50,每次的连接时间是60000毫秒。因此当应用程序调用该api超过50次的时候,就不允许再调用了,这对某些特定业务频繁操作的应用程序来说,是不合适的。

目前在本公司所申请的一种动态配置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历史访问量权值计算,最终完成api访问量的配置。

所述方法还包括:

当某个时段内新增的访问请求量大于客户预先配置的阀值参数时,触发进行api所占用权值和api历史访问量权值计算,最终完成api访问量的配置。

所述各应用接口中每一应用接口根据所述预设时长范围生成所对应终端的api请求包包括:

在所述预设时长范围内,所述每一应用接口在预设时长范围内统计所对应终端发送的api资源请求消息数量;

在预设时长范围达到时,将所对应终端类型、api资源请求消息、资源请求消息数量和时长值以数据结构封装在api请求包。

所述基于所对应终端的api请求包计算出所述api请求包在所对应的应用接口上的占用权值包括:

获取api请求包所对应的目标类型;

基于目标类型计算出所述api请求包在所对应的应用接口上的占用权值。

所述基于目标类型计算出所述api请求包在所对应的应用接口上的占用权值包括:

基于所述目标类型匹配相应的占用权值系数;

基于所述占用权值系数计算出所述api请求包在所对应的应用接口上的占用权值。

本发明实施例本发明技术方案首先基于各个应用接口在预设时间内实现api资源的收集,然后对api资源形成一个api请求包,服务端在收到请求包以后,可以针对api请求包计算出各应用接口上终端所占的占用权值,形成对应于接口上资源访问前的一个预评估或者计算过程,从而与相应时段上的权值进行比较,再判断是否需要进行静态配置还是动态配置。在此过程中,不会死板的仅仅针对动态配置而不懈的计算下去,也可以针对与历史数据的比对,实现静态配置过程,提高资源效率。对api的调用没有参数限制,可以随着应用程序的需求变化和总体资源使用情况而变化。api网关针对不同应用程序的调用可以是采用多种方式实现,保证对不同类型终端实现不同权值计算,保障整个系统上的负载均衡。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1是现有技术中的api安全与管理平台结构示意图;

图2是现有技术中的基于sal配置api访问量的系统结构示意图;

图3是本发明实施例中的配置api访问量的系统结构示意图;

图4是本发明实施例中的配置api访问量的方法流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

如图3所示的动态配置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所占用权值小于等于所述各api历史访问量权值,则采用静态服务配置协议配置api访问量,若所述各应用程序接口api所占用权值小于等于所述各api历史访问量权值,则进入动态配置api访问量过程。

应用程序通过api网关调用部署于不同服务器上的api,而应用程序搭载在相应的应用终端上,而应用终端基于相应的接口向api网关发送相应的api资源请求。本发明的技术方案是在api网关管理上,采用动态规划最优化策略和静态服务配置协议文件的结合来实现。在api网关中记录各个服务器可使用的资源、服务器最大负载能力、服务器上的api、各个api历史调用频次、运行api所需的服务器资源量等等,这些数据参与到动态规划优化方法的计算,并得到每个服务器上api的最优可调用次数,从而实现对api调用的动态控制,同时设置动态计算执行触发阀值,当访问请求达到阀值时自动进行动态计算、分配;api网关同样的可以识别出api接口所连接的应用终端的各类型,以及基于收集的各api请求包来识别或者判断应用终端所占用资源大小能力,超过上一个时间段资源配置情况下,可以选择动态配置过程实现,而不超过上一个时间段资源配置情况下,可以采用静态服务配置协议文件来实现。

相应的,图4示出了本发明实施例中的配置api访问量的方法流程图,具体包括如下步骤:

s101、基于各应用接口在预设时长范围内接收所对应终端发送的api资源请求消息;

需要说明的是,api接口预设时长范围内接收应用终端发送的api资源请求消息,以毫秒为单位进行处理,比如50ms、或者10ms等为一个单位进行接收,这种响应时长来说足够应对各应用终端的时间需求。基于应用接口接收各应用终端所发送的api请求消息,从而实现预先探知的动作,而现有的动态配置api只是考虑了网关基于api访问量实现的动态配置过程,而忽略了基于响应时长和终端类型即目标类型来作相应的权值预判过程。

s102、各应用接口中每一应用接口根据所述预设时长范围生成所对应终端的api请求包;

需要说明的是,在所述预设时长范围内,各应用接口中的每一应用接口在预设时长范围内统计所对应终端发送的api资源请求消息数量;在预设时长范围达到时,将所对应终端类型、api资源请求消息、资源请求消息数量和时长值以数据结构封装在api请求包。这些数据形成一个api请求包可以在api网关中加以解析处理。

s103、基于所对应终端的api请求包计算出所述api请求包在所对应的应用接口上的占用权值;

具体实施过程中,可以获取api请求包所对应的目标类型;基于目标类型计算出所述api请求包在所对应的应用接口上的占用权值。不同目标类型所占有资源权值不同,而根据不同目标类型所占用权值进行计算后,即可得出整个api网关所需要配置api资源需求。

具体实施过程中,该基于目标类型计算出所述api请求包在所对应的应用接口上的占用权值包括:基于所述目标类型匹配相应的占用权值系数;基于所述占用权值系数计算出所述api请求包在所对应的应用接口上的占用权值。

比如目标类型为平板电脑或者移动终端,其所对应的api接口从获取的api请求包,其所占用类型或者资源匹配系数都是不同的,其根据各自所对应的占用权值系数,或者不同终端类型所具有的系数比也不同,那么根据各个终端类型所具有的系数比不同,即可实现营业接口上的占用权值计算。

s104、统计出各应用程序接口api所占用权值,以及根据上一阶段预设时长范围内的历史访问量计算出该api集合内各api历史访问量权值,如果超过则进入s107,如果未超过则进入s105;

针对各个应用程序接口api所占用权值情况,以及根据上一阶段预设时长范围内的历史访问量计算出api集合内各api历史访问量权值,这里的历史访问量权值可形成一个历史访问量所占用资源的权值,在判断每个api接口上的api所占用权值不超过所对应的api历史访问量权值,说明这个占用权值是允许的,即这个应用接口上的api不需要额外配置资源;若这里的api占用权值超过所对应的api历史访问量权值,即这个应用接口上的api需要额外配置资源。

这里的上一阶段预设时长范围内的历史访问量计算出该api集合内各api历史访问量权值可以是初始值设置情况,也可以是上一个时长的历史访问量。通过这种设置,在与上一个时长的访问量进行比对时,可以预先根据占用权值知道这个数据会不会满足,如果占用权值所导致的访问量过大,则需要进行动态配置,若占用权值所导致的访问量未超过历史访问量,则进行静态配置即可。

s105、判断所述各应用程序接口api所占用权值是否大于所述各api历史访问量权值,如存在大于的情况,则需要进入s107,若不存在大于的情况则进入s106步骤;

s106、若所述各应用程序接口api所占用权值小于等于所述各api历史访问量权值,则采用静态服务配置协议配置api访问量;

s107、若所述各应用程序接口api所占用权值小于等于所述各api历史访问量权值,则进入动态配置api访问量过程。

具体实施过程中,进入动态配置api访问量过程包括:根据历史访问量和资源的实际访问量计算修正后理论访问量;基于计算修正后理论访问量判断下一次理论访问量与上一次理论访问量的大小关系;如果判断下一次理论访问量大于等于上一次理论访问量,则将上一次理论访问量配置为api访问量;如果判断下一次理论访问量小于上一次理论访问量,则将下一次理论访问量之后的分量重新构造约束集合进行计算。

具体实施过程中,基于计算修正后理论访问量判断下一次理论访问量与上一次理论访问量的大小关系之前还包括:判断修正后资源使用情况是否在负载以内,如果资源使用情况在负载以内,则基于计算修正后理论访问量判断下一次理论访问量与上一次理论访问量的大小关系;如果资源使用情况在负载以外,则计算负载引入参数,使得修正后理论访问量在负载范围内,则基于负载引入参数和计算修正后理论访问量判断下一次理论访问量与上一次理论访问量的大小关系。

具体实施过程中,如果判断下一次理论访问量小于上一次理论访问量,则将下一次理论访问量之后的分量重新构造约束集合进行计算中还包括:当下一次理论访问量小于上一次理论访问量,则将下一次理论访问量之后的分量重新构造成一个约束集合,进行api所占用权值和api历史访问量权值计算,最终完成api访问量的配置。

在动态配置api过程中,当某个时段内新增的访问请求量大于客户预先配置的阀值参数时,触发进行api所占用权值和api历史访问量权值计算,最终完成api访问量的配置。

需要说明的是,以上动态配置api资源的过程,可参阅201410331882x号专利相关说明,这里不再一一赘述。

综上,本发明技术方案首先基于各个应用接口在预设时间内实现api资源的收集,然后对api资源形成一个api请求包,服务端在收到请求包以后,可以针对api请求包计算出各应用接口上终端所占的占用权值,形成对应于接口上资源访问前的一个预评估或者计算过程,从而与相应时段上的权值进行比较,再判断是否需要进行静态配置还是动态配置。在此过程中,不会死板的仅仅针对动态配置而不懈的计算下去,也可以针对与历史数据的比对,实现静态配置过程,提高资源效率。对api的调用没有参数限制,可以随着应用程序的需求变化和总体资源使用情况而变化。api针对不同应用程序的调用可以是采用多种方式实现,保证对不同类型终端实现不同权值计算,保障整个系统上的负载均衡。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(rom,readonlymemory)、随机存取存储器(ram,randomaccessmemory)、磁盘或光盘等。

以上对本发明实施例所提供的配置api访问量的方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1