CN112346880A - 接口调用方法、装置、计算机可读存储介质和计算机设备 - Google Patents

接口调用方法、装置、计算机可读存储介质和计算机设备 Download PDF

Info

Publication number
CN112346880A
CN112346880A CN201910726203.1A CN201910726203A CN112346880A CN 112346880 A CN112346880 A CN 112346880A CN 201910726203 A CN201910726203 A CN 201910726203A CN 112346880 A CN112346880 A CN 112346880A
Authority
CN
China
Prior art keywords
interface
request
calling
historical
success probability
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.)
Granted
Application number
CN201910726203.1A
Other languages
English (en)
Other versions
CN112346880B (zh
Inventor
冯锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201910726203.1A priority Critical patent/CN112346880B/zh
Publication of CN112346880A publication Critical patent/CN112346880A/zh
Application granted granted Critical
Publication of CN112346880B publication Critical patent/CN112346880B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/544Remote

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本申请涉及一种接口调用方法、装置、计算机可读存储介质和计算机设备,该方法包括:确定接收到的服务请求所对应的接口调用链路;获取所述接口调用链路中每个接口的状态信息;根据所述状态信息计算相应接口的调用成功概率;当每个接口的调用成功概率大于阈值时,调用所述接口调用链路中的接口响应所述服务请求。本申请提供的方案可以减少无效的接口调用开销,节约接口资源。

Description

接口调用方法、装置、计算机可读存储介质和计算机设备
技术领域
本申请涉及计算机技术领域,特别是涉及一种接口调用方法、装置、计算机可读存储介质和计算机设备。
背景技术
随着计算机技术的发展,越来越多的应用系统采用多个服务器来实现系统架构。在应用系统向用户提供服务时,收到服务请求的服务器可能需要通过调用其他服务器提供的接口从其他服务器拉取响应该服务请求所依赖的数据。然而,同一接口可能同时会接收到来自一个或多个服务器的大量调用请求,当调用量超过接口的可承受量时则会造成应用系统过载崩溃。因此,对于高并发应用系统,过载保护是保护整体系统稳定、高效运行的关键。
传统的过载保护方式主要是为每个接口设定调用频率阈值。被调用接口对超过调用频率阈值的调用请求丢弃不予响应。但当响应同一服务请求需要调用多个接口时,这种方式仍然占用了与丢弃调用请求的接口同时被调用的其他接口的服务能力,造成资源浪费。
发明内容
基于此,有必要针对传统过载保护方式会造成接口资源浪费的技术问题,提供一种接口调用方法、装置、计算机可读存储介质和计算机设备。
一种接口调用方法,包括:
确定接收到的服务请求所对应的接口调用链路;
获取所述接口调用链路中每个接口的状态信息;
根据所述状态信息计算相应接口的调用成功概率;
当每个接口的调用成功概率大于阈值时,调用所述接口调用链路中的接口响应所述服务请求。
一种接口调用装置,所述装置包括:
链路确定模块,用于确定接收到的服务请求所对应的接口调用链路;
链路分析模块,用于获取所述接口调用链路中每个接口的状态信息;根据所述状态信息计算相应接口的调用成功概率;
接口调用控制模块,用于当每个接口的调用成功概率大于阈值时,调用所述接口调用链路中的接口响应所述服务请求。
一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行上述接口调用方法的步骤。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行上述接口调用方法的步骤。
上述接口调用方法、装置、计算机可读存储介质和计算机设备,在接收到服务请求时,可以根据所依赖的接口调用链路中每个接口的状态信息,对每个接口的调用成功概率进行预测分析;通过将调用成功概率与阈值比较,可以提前发现是否有接口处于过载状态,进而提前评估本次服务请求的响应情况;只有当全部接口的调用成功概率大于阈值时,才真正调用接口调用链路中的每个接口来响应服务请求,可以减少不必要的调用开销,节约接口资源,实现了真正意义上的过载保护。
附图说明
图1a为一个实施例中接口调用方法的应用环境图;
图1b为另一个实施例中接口调用方法的应用环境图;
图2为一个实施例中接口调用方法的流程示意图;
图3为一个实施例中接入服务器预存储的配置信息的示意图;
图4为一个实施例中基于单位时长确定获取状态信息对应时间段的示意图;
图5为一个实施例中实施接口调用方法的架构示意图;
图6为一个实施例中接口调用方法的时序图;
图7为另一个实施例中实施接口调用方法的架构示意图;
图8为另一个实施例中接口调用方法的时序图;
图9为一个实施例中根据预测请求到达量调整链路分析方法的示意图;
图10为一个具体的实施例中调用成功概率分析步骤的流程示意图;
图11为另一个具体的实施例中调用成功概率分析步骤的流程示意图;
图12为一个具体的实施例中接口调用方法的流程示意图;
图13为一个实施例中接口调用装置的结构框图;
图14为另一个实施例中接口调用装置的结构框图;
图15为一个实施例中计算机设备的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1a为一个实施例中接口调用方法的应用环境图。参照图1a,该接口调用方法应用于应用系统。该应用系统包括终端110、接入服务器120和应用服务器130。终端110与接入服务器120通过网络通信。接入服务器120与应用服务器130通过网络通信。终端110上运行有目标应用。应用服务器130是为目标应用提供服务的服务器。接入服务器120在接收到终端110基于目标应用发送的服务请求时,采用上述接口调用方法,判断是否需要将服务请求转发至应用服务器130,由应用服务器130通过调用相应接口来响应该服务请求。终端110具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。接入服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。应用服务器130是多个服务器组成的服务器集群。
需要说明的是,上述的应用环境只是一个示例,在一些实施例中,也可以不再部署接入服务器120。参考图1b,图1b为另一个实施例中接口调用方法的应用环境图。如图1b所示,应用服务器130在接收到终端110基于目标应用发送的服务请求后,采用上述接口调用方法自行判断是否需要调用相应接口来响应该服务请求。
如图2所示,在一个实施例中,提供了一种接口调用方法。本实施例主要以该方法应用于上述图1a中的接入服务器120或图1b中的应用服务器130来举例说明。参照图2,该接口调用方法具体包括如下步骤:
S202,确定接收到的服务请求所对应的接口调用链路。
其中,服务请求是基于终端上所运行的目标应用向应用服务器发起的要求。目标应用是指直接运行于终端操作系统的原生应用程序或在原生应用程序提供的环境中运行的应用子程序,具体可以是应用获取平台、社交应用、支付应用或游戏应用等。基于不同的服务需求,在目标应用可以发起多种类型的服务请求。比如,应用获取平台是能够以网站或客户端等形式向用户提供移动应用下载服务的应用程序,基于应用获取平台发起的服务请求的请求类型具体可以是应用检索请求、应用下载请求或应用推荐请求等。
应用服务器是为目标应用提供服务的后台服务器。应用服务器可以采用分布式架构实现,是由多个服务器组成的服务器集群,可以基于不同服务器实现不同服务功能。接口调用链路是指目标服务器与接口服务器之间的链路。目标服务器是指应用服务器中能够响应当前接收到的服务请求的服务器。接口服务器是指应用服务器中提供了目标服务接口的服务器。目标服务接口是指目标服务器响应服务请求所需调用的接口。响应同一服务请求可能需要调用一个或多个接口,从而服务请求所对应的接口调用链路可能有多条。
运行有目标应用的终端与应用服务器之间部署了接入服务器。接入服务器是用于对终端基于目标应用发起的服务请求进行拦截,并对服务请求能够得到成功响应的概率进行预测的代理服务器。接入服务器中预存储了用于确定服务请求所对应接口调用链路的配置信息。接入服务器的部署,使得当需要新增任何其他应用服务器时只需在接入服务器添加相应的配置信息,即可采用本实施例提供的接口调用方法向用户提供服务,从而使本实施例提供的接口调用方法具有较好的扩展性。
配置信息包括多种请求类型与服务器标识之间的映射关系,以及多种请求类型与接口标识之间的映射关系。容易理解,配置信息可以是蕴含在目标应用对应程序代码中记录了上述映射关系的代码片段,也可以是基于目标应用对应程序代码提取得到并另行存储的信息。参考图3,图3为一个实施例中接入服务器预存储的配置信息的示意图。如图3所示,配置信息可以以数据列表的方式存储在数据库中。比如,根据配置信息接入服务器可以确定“目标服务器1能够通过调用接口A、接口B以及接口C来响应请求类型1的服务请求”。用于存储配置信息的数据库可以是关系数据库等。
具体地,接入服务器对是否存在终端基于目标应用发送的服务请求进行监听,并在监听到服务请求时对服务请求进行拦截。接入服务器对服务请求进行解析,确定服务请求对应的请求类型,并根据预存储的配置信息进一步确定与该请求类型具有映射关系的服务器标识及接口标识。根据与该请求类型具有映射关系的服务器标识及接口标识,接入服务器可以确定响应该服务请求所依赖的接口调用链路。服务器标识对应的目标服务器与每个接口标识对应的接口服务器之间分别形成一条接口调用链路。
S204,获取接口调用链路中每个接口的状态信息。
其中,状态信息是指能够直接或间接反映接口服务能力的信息,如接口在预设时间分片的请求响应状况信息、资源消耗状况信息等。请求响应状况信息包括接口在预设时间分片对接收到的调用请求响应或丢弃的记录等。资源消耗状况信息包括接口所属服务器中CPU(Central Processing Unit,中央处理器)、内存等资源占用量等。状态信息可以是接口服务器定期或不定期上报并存储至接入服务器部署的数据库中的,也可以是接入服务器在拦截到服务请求后在相应接口服务器临时拉取到的。
具体地,接入服务器在数据库中查询是否存储有接口标识所对应目标服务接口的状态信息。当数据库中存储有接口标识所对应目标服务接口的状态信息时,接入服务器在存储器中读取目标服务接口的状态信息。当数据库中未存储有接口标识所对应目标服务接口的状态信息时,接入服务器向接口标识对应的接口服务器发送状态上报请求。接口服务器根据状态上报请求,将目标服务接口的状态信息上报至接入服务器。
在一个实施例中,获取接口调用链路中每个接口的状态信息之前,方法还包括:基于预存储的每个接口标识分别生成对应的状态上报任务;将状态上报任务发送至提供相应接口的服务器;存储每个服务器通过执行相应状态上报任务上报的状态信息。
其中,状态上报任务可以是根据接口标识以及需要上报的状态参数生成的任务。状态上报任务可以是定期任务,也可以是不定期任务,比如当接口的某项状态参数异常时对该状态参数进行上报。
具体地,接入服务器根据接口调用链路中每个接口的接口标识,以及预先配置的需要上报的状态参数生成状态上报任务,将状态上报任务发送至相应接口标识对应的接口服务器。根据状态上报任务,接口服务器获取相应目标服务接口的状态信息,并将状态信息发送至接入服务器。后续,接入服务器可以直接基于数据库存储的状态信息进行调用成功概率分析。
在一个实施例中,接入服务器仅存储每个接口在最近单位时长的状态信息,对于早于最近单位时长接收到的过期的状态信息自动删除,或导出至其他计算机设备用于统计分析,以减少对接入服务器存储资源的占用。
上述实施例中,通过向各接口所属的服务器提前下发状态上报任务,后续只需接收各服务器主动上报的状态信息即可,一劳永逸;此外,由于提前获取了接口的状态信息,在接收到服务请求时可以直接基于已有的状态信息立即开始调用成功概率的分析,进而提高接口调用效率。
在一个实施例中,获取接口调用链路中每个接口的状态信息包括:向接口调用链路中每个接口所属服务器发送状态上报请求;接收每个服务器根据状态上报请求上报的状态信息。
具体地,接入服务器在接收到服务请求后,根据接口调用链路中每个接口的接口标识,以及预先配置的需要上报的状态参数生成状态上报请求,将状态上报请求发送至相应接口服务器。接入服务器接收接口服务器根据状态上报请求返回的相应目标服务接口最新的状态信息。
在一个实施例中,根据服务请求的类型不同或者各个接口对于应用系统稳定运行的重要程度不同,可以基于不同的接口采用不同的状态信息获取策略。比如,对于调用频率较高且对于应用系统较为重要的接口,可以每次在接收到服务请求后从相应接口服务器拉取最新的状态信息;对于其他接口,可以在数据库中拉取预先上报的状态信息。
上述实施例中,在接收到服务请求后从响应接口服务器拉取最新的状态信息,有助于提高调用成功概率准确性。
S206,根据状态信息计算相应接口的调用成功概率。
其中,基于过载保护需求,每个接口具有对应的调用频率阈值。调用频率阈值可以是QPS(Query Per Second,每秒请求数)。目标服务器接收到服务请求后,向相应接口发送调用请求。接口基于秒级QPS监控进行调用请求削峰。也就是在每秒周期内,当到达的调用请求数量达到QPS上限后,接口对当前一秒内后续接收到的调用请求统一丢弃拒绝响应。此时,目标服务器调用该接口失败。调用成功概率是指接口响应目标服务器发送的调用请求的概率。
具体地,接入服务器根据接口服务器对应的资源拥有量及资源占用量,计算接口服务器的资源空闲率,根据资源空闲率确定相应接口的调用成功概率。在一个实施例中,接入服务器可预先建立资源空闲率与调用成功概率的对应关系,进而根据该对应关系确定接口所对应的调用成功概率。
在一个实施例中,接入服务器可预先根据状态信息确定接口的多种状态参数。比如,根据接口在预设时间分片对接收到的调用请求响应或丢弃的记录,可以确定接口在预设时间分片的累积请求响应量和累积请求到达量等状态参数。接入服务器结合上述资源空闲率对这些状态参数进行组合,得到多种状态参数组合,并确定每种状态参数组合对应的调用成功概率。接入服务器基于状态参数组合及对应的调用成功概率构建样本集,通过该样本集预训练相关的机器学习模型。接入服务器可在获取相应接口的状态信息后,将状态信息输入到机器学习模型中,输出相应接口的调用成功概率。
在一个实施例中,根据状态信息计算相应接口的调用成功概率包括:根据状态信息,确定相应接口在单位时长内的累计历史请求响应量;根据累计历史请求响应量确定相应接口所对应的调用成功概率。
其中,对接口调用链路进行调用成功概率分析时需要获取接口在一段时间内的状态信息。单位时长是指这段时间的时间长度。单位时长过长会增加接入服务器计算量;单位时长过小会使用于链路分析的状态信息不够充分,影响调用成功概率分析结果准确性,因而需要合理设定,如1秒等。。
基于单位时长可以确定获取状态信息的多种时间片段。该时间片段包括起始时间和结束时间参考图4,图4为一个实施例中基于单位时长确定获取状态信息所对应时间片段的示意图。如图4所示,获取状态信息的时间片段可以是在当前服务请求的接收时间之前、时间长度为单位时长的一段时间,记作历史时段。历史时段的起始时间和结束时间是动态确定的。比如,假设单位时长为t,在T时刻接收到服务请求,则最近的历史时段的起始时间为T-t,结束时间为T。
如图4所示,若预先确定了多个起始时间和结束时间均确定的固定时段,则获取状态信息的时间片段也可以是其中一个包含当前服务请求接收时间且时间长度为单位时长的固定时段,记作当前时段。也就是当前时段的起始时间和结束时间是预先确定的。比如,在固定时段(t0-t,t0)接收到服务请求,则当前时段的起始时间为t0-t,结束时间为t0。若将单位时长划分为更细粒度的多个时间分片,则当前时段包括当前时间分片和多个历史时间分片。其中,当前时间分片包含当前服务请求的接收时间。
具体地,接入服务器根据接口在历史时段对接收到的调用请求的响应记录,对接口在历史时段响应的调用请求的数量进行统计,得到相应接口在历史时段内的累计历史请求响应量。或者,接入服务器根据接口在当前时段内当前时间分片之前的多个历史时间分片对接收到的调用请求的响应记录,对接口在多个历史时间分片响应的调用请求的数量进行统计,得到相应接口在当前时段的累计历史请求响应量。
在一个实施例中,接入服务器可通过计数器来实现每个接口对应累计历史请求响应量的统计。每当有一个服务请求被转发时,该服务请求所依赖的每个接口对应累计历史请求响应量就加1。接入服务器可基于时间长度为单位时长的滑窗函数,动态统计历史单位时长内每个接口所对应的累计历史请求响应量。通过计数器实时统计累计历史请求响应量,可以在服务请求到达时直接基于已经统计得到的累计历史请求响应量进行链路分析,提高链路分析效率。
进一步地,接入服务器获取接口标识对应的参考请求响应量。参考请求响应量可以是根据接口在多个历史单位时长内所响应调用请求的数量统计得到的、能够表征接口平均服务能力的数值或者数值区间。接入服务器根据累计历史请求响应量与参考请求响应量的差值,或者累计历史请求响应量所属的数值区间,确定接口所对应的调用成功概率。在一个实施例中,接入服务器可预先建立差值或数值区间与调用成功概率的对应关系。接入服务器可根据该对应关系确定接口所对应的调用成功概率。
上述实施例中,接入服务器基于接口在历史时间对调用请求的实际响应情况分析接口当前的服务能力,可以提高调用成功概率预测准确性。
S208,当每个接口的调用成功概率大于阈值时,调用接口调用链路中的接口响应服务请求。
其中,当接口调用链路中每个接口均可成功响应目标服务器发送的调用请求时,对应服务请求可以得到成功响应。当接口调用链路中存在接口无法成功响应目标服务器发送的调用请求时,则对应服务请求响应失败。阈值是指预先设置的可判定服务请求能够被成功响应的最小概率值。阈值越高,表示服务请求能够被成功响应的置信度越高。阈值可以根据需求自由设定,如50%。
具体地,接入服务器比较服务请求所对应的接口调用链路中每个接口是否均大于阈值。当接口调用链路中每个接口均大于阈值时,在一定置信程度上可以判定服务请求可以成功响应,接入服务器将服务请求转发至接口调用链路中的目标服务器。目标服务器向接口服务器发送对目标服务接口的调用请求,当目标服务接口响应调用请求时,目标服务器接收接口服务器通过目标服务接口返回的数据,基于该数据响应服务请求。
参考图5,图5为一个实施例中实施接口调用方法的架构示意图。如图5所示,接入服务器与接口服务器通过网络通信,接口服务器可以将接口的状态信息直接上报至接入服务器。目标服务器在拉取到响应服务请求所需数据后,也可以不经接入服务器中转,而将拉取的数据直接返回至终端,以响应服务请求。
参考图6,图6为一个实施例中基于图5所示架构接口调用方法的时序图。如图6所示,接入服务器接收应用服务器中各个接口服务器上报的相应接口的状态信息,对状态信息进行缓存。当接收到终端基于目标应用触发的服务请求时,接入服务器根据服务请求的请求类型确定该服务请求所依赖的接口调用链路。假设接口调用链路包括接口A和接口B两个接口,则接入服务器在存储的状态信息中读取接口A以及接口B的状态信息,根据读取的状态信息分别计算接口A的调用成功概率和接口B的调用成功概率。接入服务器根据调用成功概率对服务请求的响应情况进行预测。只有当接口A和接口B的调用成功概率均达到阈值时,接入服务器将服务请求转发至能够响应该服务请求的目标服务器。目标服务通过接口调用从相应接口A所在服务器及接口B所在服务器分别拉取响应服务请求所需的数据。目标服务器将拉取的数据通过接入服务器返回至终端,以响应服务请求。
参考图7,图7为另一个实施例中实施接口调用方法的架构示意图。如图7所示,目标服务器在接收到终端发送的服务请求后,基于上述接口调用方法自行分析是否需要对该服务请求作出相应,并根据分析结果通过接口调用拉取数据或者直接将服务请求丢弃。
参考图8,图8为另一个实施例中基于图7所示架构接口调用方法的时序图。如图8所示,当不再部署接入服务器时,目标服务器接收通信连接的各个接口服务器上报的相应接口的状态信息,对状态信息进行缓存。当接收到终端基于目标应用触发的服务请求时,目标服务器根据服务请求的请求类型确定该服务请求所依赖的接口。假设响应该服务请求需要调用接口A和接口B两个接口,目标服务器在存储的状态信息中读取接口A以及接口B的状态信息,根据读取的状态信息分别计算接口A的调用成功概率和接口B的调用成功概率。目标服务器根据调用成功概率对服务请求的响应情况进行预测。只有当接口A和接口B的调用成功概率均达到阈值时,目标服务器调用接口A及接口B,从接口A所在服务器及接口B所在服务器分别拉取响应服务请求所需的数据,并将拉取的数据返回至终端,以响应服务请求。
在一个实施例中,不同服务请求所依赖接口调用链路对应的阈值可以不同。比如,响应服务请求需要调用的接口数量越多,可以相应减小阈值。不同接口对应调用成功概率的阈值也可以不同。
在一个实施例中,阈值可以是根据对每个接口在多个历史单位时长的请求响应状况信息统计分析,并根据请求响应状况信息的变更定期或不定期更新得到。结合接口历史请求响应情况动态确定阈值,可以使阈值更加贴合应用服务器实际服务能力,不仅可以避免因阈值过大导致大多数服务请求无法得到响应,还可以避免因阈值过小而失去了对接口调用链路进行调用成功概率分析的意义,从而在减少服务请求被误丢弃的同时,也可以减少对与丢弃调用请求的接口同时被调用的其他接口服务能力的占用,节约接口资源。
上述接口调用方法,在接收到服务请求时,可以根据所依赖的接口调用链路中每个接口的状态信息,对每个接口的调用成功概率进行预测分析;通过将调用成功概率与阈值比较,可以提前发现是否有接口处于过载状态,进而提前评估本次服务请求的响应情况;只有当全部接口的调用成功概率大于阈值时,才真正调用接口调用链路中的每个接口来响应服务请求,可以减少不必要的调用开销,节约接口资源,实现了真正意义上的过载保护。
在一个实施例中,上述接口调用方法还包括:当接口调用链路中存在接口的调用成功概率小于或等于阈值时,直接丢弃服务请求。
当接口调用链路中存在接口的调用成功概率小于或等于阈值时,在一定置信程度上可以判定服务请求会响应失败,接入服务器直接丢弃服务请求,而不再将其转发至接口调用链路中的目标服务器,减少因为其中一部分接口无法响应而占用另一部分能够成功响应调用请求的接口的服务能力。
上述实施例中,通过链路分析,对于可预见的失败请求直接拒绝,不再进行后续的调用,可以减少不必要的调用开销,节约接口资源。
在一个实施例中,上述接口调用方法还包括:当接口调用链路中存在接口的调用成功概率小于或等于阈值时,获取调用成功概率小于或等于阈值的接口所对应的接口属性;当每个调用成功概率小于或等于阈值的接口所对应的接口属性为目标属性时,调用其中调用成功概率大于阈值的接口响应服务请求。
其中,接入服务器预存储的接口的配置信息还包括接口的接口属性。接口属性是指相应接口对于响应每种类型服务请求的必要性的信息。接口属性包括请求类型及对应的必要性选项。如图3所示,必要性选项包括必选和可选。目标属性是指必要性选项为可选的接口属性。
对于某些类型的服务请求,并不是所依赖的全部接口都是必选的,存在可选的接口。必选的接口提供的数据为响应服务请求的关键数据,关键数据的有无会对服务请求响应结果产生实质性影响。可选的接口提供的数据为响应服务请求的边缘数据,边缘数据的有无对于服务请求的响应结果无实质性影响。比如,对于基于应用获取平台发起的请求类型为“应用检索”的服务请求,其所依赖的用于提供“待下载应用的版权信息”的接口可以是可选的,而用于提供“待下载应用的下载链接”的接口则是必选的。
具体地,当接口调用链路中存在接口的调用成功概率小于或等于阈值时,将调用成功概率小于或等于阈值的接口记作过载接口,接入服务器获取每个过载接口所对应的接口属性,并判断接口属性是否为目标属性。若接口属性为目标属性,表示相应过载接口提供的数据对于响应服务请求是可选的,接入服务器从接口调用链路中过滤掉每个接口属性为目标属性的过载接口。
进一步地,在过滤完成后,接入服务器判断接口调用链路中是否仍存在过载接口。若接口调用链路中已经不存在过载接口,表示过载接口均为可选接口,而对服务请求响应结果具有决定性作用的必选接口的调用成功概率均高于阈值,此时,接入服务器可将服务请求转发至接口调用链路中的目标服务器。目标服务器向过滤掉过载接口的接口调用链路中每个接口发送调用请求。目标服务器根据各个接口返回的数据响应服务请求。
在一个实施例中,上述接口调用方法还包括:当存在调用成功概率小于或等于阈值的接口所对应的接口属性不为目标属性时,丢弃服务请求。
具体地,若存在过载接口的接口属性不为目标属性,表示该过载接口为必选接口,当存在必选接口的调用成功概率小于或等于阈值时,在一定置信程度上可以判定服务请求会响应失败,接入服务器丢弃服务请求,不再将其转发至接口调用链路中的目标服务器。
在上述实施例中,虽然存在调用成功概率小于或等于阈值的过载接口,若过载接口对于响应服务请求不会产生实质性影响,则依然对服务请求进行转发,从而,可以在节约接口资源的情况下,尽可能提高服务请求的响应率。
在一个实施例中,确定接收到的服务请求所对应的接口调用链路包括:确定接收到的服务请求的请求类型;获取请求类型所依赖的每个接口的接口属性;将与请求类型所依赖的接口属性符合预设筛选条件的接口之间的链路确定为服务请求对应的接口调用链路。
其中,预设筛选条件是指预先设置的对接口进行筛选的指标。本实施例的预设筛选条件可以是接口的接收属性不属于目标属性。
具体地,接口属性为目标属性的可选接口的有无对服务请求响应结果无实质性影响,从而在根据配置信息确定了服务请求所依赖的多个接口后,接入服务器直接对其中的可选接口进行过滤,仅基于其中的必选接口以及目标服务器形成响应服务请求所对应的接口调用链路。
在上述实施例中,仅基于必选接口形成响应服务请求所对应的接口调用链路,而过滤掉可选接口,并不会对服务请求成功响应产生实质性影响;此外,仅基于必选接口形成接口调用链路,使接入服务器可以仅对必选接口的调用成功概率进行预测分析,减少调用成功概率计算量,节约接入服务器计算资源。
在一个实施例中,服务请求在单位时长内当前时间分片接收到;根据状态信息,确定相应接口在单位时长内的累计历史请求响应量包括:根据状态信息,确定相应接口在单位时长内预设数量的历史时间分片所对应的累计历史请求响应量;根据累计历史请求响应量确定相应接口所对应的调用成功概率包括:获取相应接口在单位时长的请求上限量;根据累计历史请求响应量和请求上限量,确定相应接口在当前时间分片所对应的调用成功概率。
其中,时间分片是从单位时长中划分出的更细粒度的时间段。从单位时长中划分出时间分片,具体可以是将单位时长划分为一定数目的等时长的时间分片,也可以是将单位时长划分为一定数目的时长按比例增加的时间分片,或者是将单位时长随机划分为一定数目的时间分片。例如,当单位时长为1秒时,可以将1秒划分为10个100毫秒的时间分片。
历史时间分片是基于时间维度的在当前时间分片前面的时间片。累计历史请求响应量是接口在多个历史时间分片所响应的调用请求的数量之和。在本实施例中累计历史请求响应量是指当前时段内当前时间分片之前预设数量的历史时间分片所响应的调用请求的总数量。请求上限量是接口能够响应的调用请求的最大量。单位时长的请求上限量是单位时长内接口能够响应的调用请求的最大量。
具体地,接入服务器可通过统计单位时长内除当前时间分片外的其他历史时间分片所对应的请求响应量,来确定预设数量的历史时间分片所对应的累计历史请求响应量。比如,若将单位时长1秒划分为10个100毫秒的时间分片,接入服务器可以统计当前100毫秒时间分片之前的9个时间分片内的调用请求响应量之和,将之前的9个时间分片内的调用请求响应量之和作为累计历史请求响应量。接入服务器获取的对应单位时长的请求上限量可以是预先配置的值,也可以是根据接口当前的状态获取的动态的值。比如,接入服务器可通过对接口的实际服务能力进行压力测试,以获取该接口单位时长的请求上限量,或者通过对接口所属服务器中请求队列拥塞情况来评估得到当前的单位时长的请求上限量。
进一步地,接入服务器可以计算当前时段的请求上限量与当前时段内除当前时间分片外的其他时间分片所对应的累计历史请求响应量的差值,将该差值作为当前时间分片内接口的可响应请求余量。根据当前时间分片内接口的可响应请求余量,确定接口在当前时间分片的调用成功概率。
在上述实施例中,对于每个接口,每隔一个时间段只需进行一次调用成功概率的分析,可以减少接入服务器计算量。此外,综合考虑当前时段的请求上限量以及接口在多个历史时间分片响应调用请求已耗费的服务能力,来评估得到接口在当前时间分片的服务能力,可以提高调用成功概率计算效率和准确性。
在一个实施例中,根据累计历史请求响应量和请求上限量,确定相应接口在当前时间分片所对应的调用成功概率包括:根据累计历史请求响应量及请求上限量,确定相应接口在当前时间分片所对应的可响应请求余量;获取接口调用链路中每个接口在当前时间分片的预测请求到达量;根据可响应请求余量及预测请求到达量确定相应接口在当前时间分片所对应的调用成功概率。
其中,预测请求到达量是以时间分片为单位,对当前时间分片内需要调用某个接口的服务请求到达情况进行预测而得到的请求到达量。
具体地,接入服务器可以计算当前时段的请求上限量与当前时段内除当前时间分片外的其他时间分片所对应的累计历史请求响应量的差值,将该差值作为当前时间分片内接口的可响应请求余量。或者将得到的差值加上预设的请求余量的和作为当前时间分片所对应的可响应请求余量。
进一步地,接入服务器可通过计数器对指向不同接口的服务请求到达量分别进行统计,得到每个接口在当前时段内除当前时间分片外的其他时间分片所对应的实际请求到达量。接入服务器可根据当前时段内多个历史时间分片的实际请求到达量来预测当前时间分片的请求到达量。接入服务器可根据可响应请求余量和预测请求到达量确定预测请求丢弃量。再根据预测请求丢弃量相对预测请求到达量的占比确定响应接口的调用成功概率。
在一个实施例中,接入服务器可通过计数器分别统计预设数量的历史时间分片所对应的历史请求到达量。将历史请求到达量中出现频次最高的请求到达量作为当前时间分片所对应的预测请求到达量。例如,接入服务器统计10个历史时间分片所对应的请求到达量,发现这10个时间分片中指向某个接口的服务请求到达的数量分别是5、6、6、7、9、5、4、0、5、5。经统计发现请求到达量5出现的频次最高,因此将5作为相应接口在当前时间分片所对应的预测请求到达量。
在一个实施例中,接入服务器可获取历史时间分片内服务请求到达的具体时间,统计预设时间分片内的请求到达数量。接入服务器可采用线性最小二乘法或多项式拟合等方式拟合请求到达量随时间变化的函数。根据拟合的请求到达量随时间变化的函数以及微分原理计算当前时间分片内的请求到达数量。
在一个实施例中,接入服务器可获取当前时间分片之前的历史时间分片的请求到达量。根据当前时间分片之前的历史时间分片的请求到达量的变化率,计算当前时间分片所对应的预测请求到达量。
在一个实施例中,接入服务器可获取当前时间分片之前的多个历史时间分片的请求到达量。根据相邻的两个时间分片之间的请求到达量之差计算请求到达量的变化率。根据预设时间分片的请求到达量的变化率,接入服务器可采用线性最小二乘法或多项式拟合等方式拟合请求到达量的变化率随时间变化的函数。根据该请求到达量的变化率随时间变化的函数,预测当前时间分片与前一时间分片之间的请求到达量的变化率,再计算当前时间分片所对应的预测请求到达量。
在一个实施例中,如图9所示,当接口在当前时间分片的预测请求到达量小于或等于预设值时,接入服务器按照本实施例的方式,根据接口在当前时段内预设数量的历史时间分片所对应的累计历史请求响应量、接口在当前时段的请求上限量、可响应请求余量以及在当前时间分片的预测请求到达量,确定相应接口在当前时间分片所对应的调用成功概率,从而对于每个接口在每个时间分片只需评估一次调用成功概率,即只需周期性评估,可以减少接入服务器计算量。
在一个实施例中,当接口在当前时间分片的预测请求到达量大于预设值时,接入服务器按照下文实施例的方式,根据接口在历史时段的累计历史请求响应量、累计请求到达量、请求响应占比的变化趋势以及接口当前的资源空闲率,确定相应接口在当前时刻的调用成功概率。这种方式,每接收到一个需要调用相应接口的服务请求,对该接口进行一次调用成功概率分析,即针对服务请求逐个评估,可以提高调用成功概率分析准确性。在预测请求到达量增大至预设值后,在从周期性评估转为逐个评估,可以同时兼顾准确性和计算量。
在上述实施例中,根据可响应请求余量和预测请求到达量来确定接口在当前时间分片所对应的调用成功概率,使得所确定的调用成功概率能够随当前接口的实际状态而变化,更能反应当前时间分片接口的实际服务能力,进而提高调用成功概率预测准确性。
在一个实施例中,获取接口调用链路中每个接口在当前时间分片的预测请求到达量包括:获取每个接口在当前时间分片之前连续的多个历史时间分片的历史请求到达量;当多个历史时间分片中最近的历史时间分片所对应历史请求到达量最小时,或多个历史时间分片对应的历史请求到达量均相同时,将最近的历史时间分片所对应历史请求到达量作为当前时间分片对应的预测请求到达量;当多个历史时间分片中最近的历史时间分片所对应历史请求到达量最大时,将比最近的历史时间分片所对应历史请求到达量大的值作为当前时间片对应的预测请求到达量。
接入服务器可获取多个连续时间分片所对应的历史请求到达量,根据历史请求到达量之间的变化趋势,以及多个历史时间分片中最近的历史时间分片对应的历史请求到达量,计算当前时间分片所对应的预测请求到达量。
具体地,当多个历史时间分片中最近的历史时间分片所对应历史请求到达量最小时,表示请求到达量处于下降趋势,此时需要考虑请求到达量的变化趋势。由于到达请求量的下降会减少过载保护发生,为了保证接口具有适当的调用门槛,进行当前请求量预测时可采用保守预测策略,也就是可以忽略请求量的下降变化量,直接将最近的历史时间分片所对应历史请求到达量作为当前时间分片对应的预测请求到达量。当多个历史时间分片各自对应的历史请求到达量均相同时,表示历史请求到达量之间的变化趋势为零,此时也可直接将最近的历史时间分片所对应历史请求到达量作为当前时间分片对应的预测请求到达量。
进一步地,当多个历史时间分片中最近的历史时间分片所对应历史请求到达量最大时,也就是说请求到达量处于上升趋势。由于到达请求量的增大更容易触发过载保护,为了保证接口具有适当的调用门槛,进行当前请求量预测时可采用增强预测策略,也就是可以在最近历史时间分片所对应历史请求到达量的基础上进一步考虑一定上升变化量。
在一个实施例中,多个历史时间分片包括当前时间分片的前一时间分片(记作第一历史时间分片),对应第一历史请求到达量;多个历史时间分片还包括第一历史时间分片的前一时间分片(记作第二历史时间分片),对应第二历史请求到达量。根据连续假设和微分假设,接入服务器可将当第一历史请求到达量与第二历史请求到达量的变化率作为预测请求到达量与第一历史请求到达量的变化率。例如,假设当前时时间分片的前一时间分片的请求到达量,即第一历史请求达到量为M1,再往前一个时间分片的请求到达量,即第二历史请求达到量为M2,时间分片时间间隔为T,则前两个时间分片的请求到达量的变化率,即第一历史请求到达量与第二历史请求到达量的变化率rate=(M1-M2)/T。
在一个实施例中,当历史请求到达量处于上升趋势,即第一历史请求到达量大于第二历史请求到达量时,可以将第一历史请求到达量的两倍减去第二历史请求到达量的差值作为当前时间分片对应的预测请求到达量。也就是说,根据连续假设与微分假设,当前时间分片的预测请求到达量Mexp可以计算如下:Mexp=M1+rate*T=M1*2-M2。
在一个实施例中,当历史请求到达量处于下降趋势,即第一历史请求到达量小于第二历史请求到达量时,可以取Mexp=M1,即将最近的历史时间分片所对应历史请求到达量直接作为当前时间分片对应的预测请求到达量。
上述实施例中,通过采用连续假设和微分假设,认为前后两个时间分片内的请求到达量的变化率是一致的。通过历史请求到达量的变化率得到当前时间分片所对应的预测请求到达量,使得预测请求到达量的准确性更高。此外,当请求到达量处于增大趋势时,采用增强预测策略对当前的请求到达量进行预测;当请求到达量处于下降趋势时,采用保守预测策略对当前的请求到达量进行预测,可以减少请求达到量的低估造成接口调用成功概率的高估,这样,可使得接入服务器能更准确地预测服务请求响应情况。
在一个实施例中,根据可响应请求余量及预测请求到达量确定相应接口在当前时间分片所对应的调用成功概率包括:根据预测请求到达量和可响应请求余量的差,确定相应接口在当前时间分片所对应的预测请求丢弃量;根据预测请求丢弃量和预测请求到达量,确定当前时间分片所对应的调用成功概率。
具体地,接入服务器可获取当前时间分片所对应的预测请求到达量,计算当前时间分片所对应的可响应请求余量与预测请求到达量的差值,将该差值作为当前时间分片所对应的预测请求丢弃量。接入服务器可计算预测请求到达量与当前时间分片所对应的预测请求丢弃量的差值,将该差值与预测请求到达量的商确定为接口在当前时间分片所对应的调用成功概率。
上述实施例中,根据当前时间分片所对应的预测请求到达量和可响应请求余量,可准确高效地确定预测请求丢弃量。根据预测请求丢弃量相对预测请求到达量的占比,即可准确、快速地确定接口在当前时间分片的服务能力,提高调用成功概率预测准确性。
在一个实施例中,根据状态信息,确定相应接口在单位时长内的累计历史请求响应量包括:根据状态信息,确定相应接口在接收到服务请求之前的单位时长内的累计历史请求响应量和累计请求到达量;根据累计历史请求响应量确定相应接口所对应的调用成功概率包括:计算累计历史请求响应量相对累计请求到达量的占比;根据计算得到的请求响应占比确定相应接口所对应的调用成功概率。
其中,累计请求到达量是指过去一段时间接口所接收到的调用请求的数量。在本实施例中累计请求到达量是指在接收到服务请求之前的单位时长内接口所接收到的调用请求的数量,即在历史时段内接口所接收到的调用请求的总数量。
具体地,接入服务器根据接口在历史时段对接收到的调用请求的响应记录,对接口在历史时段接收到的调用请求的数量进行统计,得到相应接口在历史时段的累计请求到达量。在一个实施例中,接入服务器可通过计数器来实现每个接口对应累计请求到达量的统计。每当接收到一个服务请求,该服务请求所依赖的每个接口对应累计请求到达量就加1。接入服务器可基于时间长度为单位时长的滑窗函数,动态统计单位时长内每个接口所对应的累计请求到达量。通过计数器实时统计累计请求到达量,可以在服务请求到达时对累计请求到达量的获取效率,进而提高调用成功概率计算效率。
进一步地,接入服务器计算接口在历史时段的累计历史请求响应量相对累计请求到达量的占比,记作请求响应占比,将该请求响应占比确定为相应接口所对应的调用成功概率。
上述实施例中,当接收到服务请求的即刻开始动态计算接口在此之前单位时长内的请求响应占比,不仅计算逻辑简单,节约接入服务器计算资源,且用于计算请求相应占比的数据为最能够反映接口服务能力的靠近当前时刻的最新状态数据,可以提高调用成功概率准确性。
在一个实施例中,根据计算得到的请求响应占比确定相应接口所对应的调用成功概率包括:获取每个接口在接收到服务请求之前多个单位时长的请求响应占比;根据请求响应占比之间的变化趋势,确定相应接口所对应的调用成功概率。
其中,接收到服务请求之前多个单位时长是指在当前服务请求接收时间之前、以单位时长作为时间长度的多个历史时段,其中最近的历史时段的结束时间为当前服务请求接收时间。
具体地,接入服务器根据接收到服务请求之前多个历史时段内请求响应占比的变化趋势,确定响应接口的调用成功概率。接入服务器可采用线性最小二乘法或多项式拟合等方式拟合请求响应占比随时间变化的函数。根据拟合的请求响应占比随时间变化的函数预测当前时刻的请求响应占比,将当前时刻的请求相应占比确定为相应接口所对应的调用成功概率。
在一个实施例中,接入服务器可获取多个请求响应占比之间的变化差值,计算将这些变化差值的平均值,将平均值作为当前时刻对应的请求响应占比变化值。根据最近单位时长对应的请求响应占比和当前时刻对应的请求响应占比变化值计算当前时刻对应的请求响应占比。
上述实施例中,根据接口在多个历史时段对调用请求的响应情况变化趋势,来评估接口在当前时刻的服务能力,使得预测结果准确性更高。
在一个实施例中,根据请求响应占比之间的变化趋势,确定相应接口所对应的调用成功概率包括:当多个单位时长中最近的单位时长所对应的请求响应占比最小,或多个单位时长的请求响应占比均相同时,根据比最近单位时长所对应请求响应占比小的非负值确定相应接口所对应的调用成功概率;当多个单位时长中最近的单位时长所对应的请求响应占比最大时,根据最近单位时长所对应请求响应占比确定相应接口所对应的调用成功概率。
接入服务器可获取多个连续历史时段所对应的请求响应占比,根据请求响应占比之间的变化趋势确定相应接口在当前时刻所对应的调用成功概率。当前时刻是指接收到当前的服务请求的时间。
具体地,当多个历史时段中最近的历史时段所对应的请求响应占比最小时,表示请求响应占比处于下降趋势,相应接口的服务能力在下降。由于请求响应占比的下降更容易触发过载保护,为了保证接口具有适当的调用门槛,进行当前时刻请求响应占比预测时可采用增强预测策略,也就是可以在最近历史时段所对应请求相应占比的基础上进一步考虑一定占比变化量,将最近历史时段所对应比请求响应占比小的非负值作为接口在当前时刻对应的请求响应占比。
当多个历史时段中最近的历史时段所对应的请求响应占比均相同时,表示请求响应占比之间的变化趋势为零,此时也可直接将最近历史时段所对应的请求响应占比作为接口在当前时刻对应的请求响应占比,或者也可以将最近单位时长所对应比请求响应占比小的非负值作为接口在当前时刻对应的请求响应占比。
进一步地,当多个历史时段中最近的历史时段所对应的请求响应占比最大时,也就是说请求响应占比处于上升趋势,表示相应接口的服务能力有所改善。由于请求响应占比的增大不太会触发过载保护,为了保证接口具有适当的调用门槛,进行当前请求量预测时可采用保守预测策略,也就是可以直接将最近单位时长所对应请求响应占比作为接口在当前时刻对应的请求响应占比。
上述实施例中,当请求响应占比处于增大趋势时,采用保守预测策略对当前的请求响应占比进行预测;当请求响应占比处于下降趋势时,采用增强预测策略对当前的请求响应占比进行预测,可以减少请求响应占比的低估造成接口调用成功概率的高估,这样,可使得接入服务器能更准确地预测服务请求响应情况。
在一个实施例中,状态信息包括资源余量;根据计算得到的请求响应占比确定相应接口所对应的调用成功概率包括:根据资源余量确定相应接口当前的资源空闲率;根据资源空闲率以及请求响应占比,确定相应接口所对应的调用成功概率。
具体地,接入服务器预存储了每个接口所属服务器最初拥有的资源总量。接入服务器根据接口所属服务器的资源总量和资源余量,计算相应服务器的资源空闲率,根据资源空闲率确定其负载通过率。在一个实施例中,接入服务器可预先建立资源量区间与负载通过率之间的对应关系。接入服务器可根据资源空闲率所属的资源量区间以及这种对应关系,确定接口所对应的负载通过率。
进一步地,接入服务器根据资源空闲率以及请求响应占比,确定相应接口所对应的调用成功概率。比如,对资源空闲率以及请求响应占比进行加权求平均,将计算结果确定为响应接口所对应的调用成功概率。
在一个实施例中,根据资源空闲率以及请求响应占比,确定相应接口所对应的调用成功概率包括:将资源空闲率与请求响应占比中的最小值确定为相应接口所对应的调用成功概率。
上述实施例中,综合资源空闲情况以及请求响应情况,综合评估接口当前的服务能力,提高接口调用成功概率预测准确性;将资源空闲率与请求响应占比中的最小值确定为相应接口所对应的调用成功概率,使得接口具有较高的调用门槛,进而进一步减少一些不必要的调用开销。
如图10所示,在一个具体的实施例中,调用成功概率分析的步骤包括:
S1002,根据状态信息,确定相应接口在单位时长内预设数量的历史时间分片所对应的累计历史请求响应量。
S1004,获取相应接口在单位时长的请求上限量。
S1006,根据累计历史请求响应量及请求上限量,确定相应接口在当前时间分片所对应的可响应请求余量。
S1008,获取每个接口在当前时间分片之前连续的多个历史时间分片的历史请求到达量。
S1010,当多个历史时间分片中最近的历史时间分片所对应历史请求到达量最小,或多个历史时间分片对应的历史请求到达量均相同时,将最近的历史时间分片所对应历史请求到达量作为当前时间分片对应的预测请求到达量。
S1012,当多个历史时间分片中最近的历史时间分片所对应历史请求到达量最大时,将比最近的历史时间分片所对应历史请求到达量大的值作为当前时间片对应的预测请求到达量。
S1014,根据预测请求到达量和可响应请求余量的差,确定相应接口在当前时间分片所对应的预测请求丢弃量。
S1016,根据预测请求丢弃量和预测请求到达量,确定当前时间分片所对应的调用成功概率。
如图11所示,在一个具体的实施例中,调用成功概率分析的步骤包括:
S1102,根据状态信息,确定相应接口在接收到服务请求之前的单位时长内的累计历史请求响应量和累计请求到达量。
S1104,计算累计历史请求响应量相对累计请求到达量的占比。
S1106,根据资源余量确定相应接口当前的资源空闲率。
S1108,根据资源空闲率与请求响应占比中的最小值,确定相应接口所对应的调用成功概率。
如图12所示,在一个具体的实施例中,接口调用方法包括以下步骤:
S1202,基于预存储的每个接口标识分别生成对应的状态上报任务。
S1204,将状态上报任务发送至提供相应接口的服务器。
S1206,存储每个服务器通过执行相应状态上报任务上报的状态信息。
S1208,确定接收到的服务请求的请求类型。
S1210,获取请求类型所依赖的每个接口的接口属性。
S1212,将与请求类型所依赖的接口属性符合预设筛选条件的接口之间的链路确定为服务请求对应的接口调用链路。
S1214,获取接口调用链路中每个接口的状态信息。
S1216,根据状态信息计算相应接口的调用成功概率。
S1218,当每个接口的调用成功概率大于阈值时,调用接口调用链路中的接口响应服务请求。
S1220,当接口调用链路中存在接口的调用成功概率小于或等于阈值时,获取调用成功概率小于或等于阈值的接口所对应的接口属性。
S1222,当每个调用成功概率小于或等于阈值的接口所对应的接口属性为目标属性时,调用其中调用成功概率大于阈值的接口响应服务请求。
S1224,当存在调用成功概率小于或等于阈值的接口所对应的接口属性不为目标属性时,丢弃服务请求。
图2、10、11和12分别为一个实施例中接口调用方法的流程示意图。应该理解的是,虽然图2、10、11和12的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、10、11和12中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图13所示,提供了一种接口调用装置1300,该装置包括链路确定模块1302、链路分析模块1304和接口调用控制模块1306,其中:
链路确定模块1302,用于确定接收到的服务请求所对应的接口调用链路。
链路分析模块1304,用于获取接口调用链路中每个接口的状态信息;根据状态信息计算相应接口的调用成功概率。
接口调用控制模块1306,用于当每个接口的调用成功概率大于阈值时,调用接口调用链路中的接口响应服务请求。
在一个实施例中,接口调用控制模块1306还用于当接口调用链路中存在接口的调用成功概率小于或等于阈值时,直接丢弃服务请求。
在一个实施例中,接口调用控制模块1306还用于当接口调用链路中存在接口的调用成功概率小于或等于阈值时,获取调用成功概率小于或等于阈值的接口所对应的接口属性;当每个调用成功概率小于或等于阈值的接口所对应的接口属性为目标属性时,调用其中调用成功概率大于阈值的接口响应服务请求。
在一个实施例中,接口调用控制模块1306还用于当存在调用成功概率小于或等于阈值的接口所对应的接口属性不为目标属性时,丢弃服务请求。
在一个实施例中,链路确定模块1302还用于确定接收到的服务请求的请求类型;获取请求类型所依赖的每个接口的接口属性;将与请求类型所依赖的接口属性符合预设筛选条件的接口之间的链路确定为服务请求对应的接口调用链路。
在一个实施例中,如图14所示,上述口调用装置1300还包括状态上报模块1308,用于基于预存储的每个接口标识分别生成对应的状态上报任务;将状态上报任务发送至提供相应接口的服务器;存储每个服务器通过执行相应状态上报任务上报的状态信息。
在一个实施例中,链路分析模块1304包括状态信息获取模块13042,用于向接口调用链路中每个接口所属服务器发送状态上报请求;接收每个服务器根据状态上报请求上报的状态信息。
在一个实施例中,链路分析模块1304还包括调用成功概率预测模块13044,用于根据状态信息,确定相应接口在单位时长内的累计历史请求响应量;根据累计历史请求响应量确定相应接口所对应的调用成功概率。
在一个实施例中,服务请求在单位时长内当前时间分片接收到;调用成功概率预测模块13044还用于根据状态信息,确定相应接口在单位时长内预设数量的历史时间分片所对应的累计历史请求响应量;根据累计历史请求响应量确定相应接口所对应的调用成功概率包括:获取相应接口在单位时长的请求上限量;根据累计历史请求响应量和请求上限量,确定相应接口在当前时间分片所对应的调用成功概率。
在一个实施例中,调用成功概率预测模块13044还用于根据累计历史请求响应量及请求上限量,确定相应接口在当前时间分片所对应的可响应请求余量;获取接口调用链路中每个接口在当前时间分片的预测请求到达量;根据可响应请求余量及预测请求到达量确定相应接口在当前时间分片所对应的调用成功概率。
在一个实施例中,调用成功概率预测模块13044还用于获取每个接口在当前时间分片之前连续的多个历史时间分片的历史请求到达量;当多个历史时间分片中最近的历史时间分片所对应历史请求到达量最小,或多个历史时间分片对应的历史请求到达量均相同时,将最近的历史时间分片所对应历史请求到达量作为当前时间分片对应的预测请求到达量;当多个历史时间分片中最近的历史时间分片所对应历史请求到达量最大时,将比最近的历史时间分片所对应历史请求到达量大的值作为当前时间片对应的预测请求到达量。
在一个实施例中,调用成功概率预测模块13044还用于根据预测请求到达量和可响应请求余量的差,确定相应接口在当前时间分片所对应的预测请求丢弃量;根据预测请求丢弃量和预测请求到达量,确定当前时间分片所对应的调用成功概率。
在一个实施例中,调用成功概率预测模块13044还用于根据状态信息,确定相应接口在接收到服务请求之前的单位时长内的累计历史请求响应量和累计请求到达量;根据累计历史请求响应量确定相应接口所对应的调用成功概率包括:计算累计历史请求响应量相对累计请求到达量的占比;根据计算得到的请求响应占比确定相应接口所对应的调用成功概率。
在一个实施例中,调用成功概率预测模块13044还用于获取每个接口在接收到服务请求之前多个单位时长的请求响应占比;根据请求响应占比之间的变化趋势,确定相应接口所对应的调用成功概率。
在一个实施例中,调用成功概率预测模块13044还用于当多个单位时长中最近的单位时长所对应的请求响应占比最小,或多个单位时长的请求响应占比均相同时,根据比最近单位时长所对应请求响应占比小的非负值确定相应接口所对应的调用成功概率;当多个单位时长中最近的单位时长所对应的请求响应占比最大时,根据最近单位时长所对应请求响应占比确定相应接口所对应的调用成功概率。
在一个实施例中,状态信息包括资源余量;调用成功概率预测模块13044还用于根据资源余量确定相应接口当前的资源空闲率;根据资源空闲率以及请求响应占比,确定相应接口所对应的调用成功概率。
在一个实施例中,调用成功概率预测模块13044还用于根据资源空闲率与请求响应占比中的最小值,确定相应接口所对应的调用成功概率。
上述接口调用装置1300,在接收到服务请求时,可以根据所依赖的接口调用链路中每个接口的状态信息,对每个接口的调用成功概率进行预测分析;通过将调用成功概率与阈值比较,可以提前发现是否有接口处于过载状态,进而提前评估本次服务请求的响应情况;只有当全部接口的调用成功概率大于阈值时,才真正调用接口调用链路中的每个接口来响应服务请求,可以减少不必要的调用开销,节约接口资源,实现了真正意义上的过载保护。
图15示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的接入服务器120。如图15所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现接口调用方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行接口调用方法。
本领域技术人员可以理解,图15中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的接口调用装置可以实现为一种计算机程序的形式,计算机程序可在如图15所示的计算机设备上运行。计算机设备的存储器中可存储组成该接口调用装置的各个程序模块,比如,图13所示的链路确定模块、链路分析模块和接口调用控制模块。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的接口调用方法中的步骤。
例如,图15所示的计算机设备可以通过如图13所示的接口调用装置中的链路确定模块执行步骤S202。计算机设备可通过链路分析模块执行步骤S204和S206。计算机设备可通过接口调用控制模块执行步骤S208。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述接口调用方法的步骤。此处接口调用方法的步骤可以是上述各个实施例的接口调用方法中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述接口调用方法的步骤。此处接口调用方法的步骤可以是上述各个实施例的接口调用方法中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (15)

1.一种接口调用方法,包括:
确定接收到的服务请求所对应的接口调用链路;
获取所述接口调用链路中每个接口的状态信息;
根据所述状态信息计算相应接口的调用成功概率;
当每个接口的调用成功概率大于阈值时,调用所述接口调用链路中的接口响应所述服务请求。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述接口调用链路中存在接口的调用成功概率小于或等于所述阈值时,直接丢弃所述服务请求。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述接口调用链路中存在接口的调用成功概率小于或等于所述阈值时,获取所述调用成功概率小于或等于阈值的接口所对应的接口属性;
当每个调用成功概率小于或等于阈值的接口所对应的接口属性为目标属性时,调用所述调用成功概率大于阈值的接口响应所述服务请求。
4.根据权利要求1所述的方法,其特征在于,所述确定接收到的服务请求所对应的接口调用链路包括:
确定接收到的服务请求的请求类型;
获取所述请求类型所依赖的每个接口的接口属性;
将与所述请求类型所依赖的接口属性符合预设筛选条件的接口之间的链路确定为所述服务请求对应的接口调用链路。
5.根据权利要求1所述的方法,其特征在于,所述根据所述状态信息计算相应接口的调用成功概率包括:
根据所述状态信息,确定相应接口在单位时长内的累计历史请求响应量;
根据所述累计历史请求响应量确定相应接口所对应的调用成功概率。
6.根据权利要求5所述的方法,其特征在于,所述服务请求在单位时长内当前时间分片接收到;所述根据所述状态信息,确定相应接口在单位时长内的累计历史请求响应量包括:
根据所述状态信息,确定相应接口在所述单位时长内预设数量的历史时间分片所对应的累计历史请求响应量;
所述根据累计历史请求响应量确定相应接口所对应的调用成功概率包括:
获取相应接口在所述单位时长的请求上限量;
根据所述累计历史请求响应量和所述请求上限量,确定相应接口在当前时间分片所对应的调用成功概率。
7.根据权利要求6所述的方法,其特征在于,所述根据累计历史请求响应量和请求上限量,确定相应接口在当前时间分片所对应的调用成功概率包括:
根据所述累计历史请求响应量及所述请求上限量,确定相应接口在当前时间分片所对应的可响应请求余量;
获取所述接口调用链路中每个接口在当前时间分片的预测请求到达量;
根据所述可响应请求余量及预测请求到达量确定相应接口在当前时间分片所对应的调用成功概率。
8.根据权利要求7所述的方法,其特征在于,所述获取所述接口调用链路中每个接口在当前时间分片的预测请求到达量包括:
获取每个接口在当前时间分片之前连续的多个历史时间分片的历史请求到达量;
当多个历史时间分片中最近的历史时间分片所对应历史请求到达量最小,或所述多个历史时间分片对应的历史请求到达量均相同时,将所述最近的历史时间分片所对应历史请求到达量作为当前时间分片对应的预测请求到达量;
当多个历史时间分片中最近的历史时间分片所对应历史请求到达量最大时,将比所述最近的历史时间分片所对应历史请求到达量大的值作为当前时间片对应的预测请求到达量。
9.根据权利要求7所述的方法,其特征在于,根据所述可响应请求余量及预测请求到达量确定相应接口在当前时间分片所对应的调用成功概率包括:
根据所述预测请求到达量和所述可响应请求余量的差,确定相应接口在当前时间分片所对应的预测请求丢弃量;
根据所述预测请求丢弃量和所述预测请求到达量,确定当前时间分片所对应的调用成功概率。
10.根据权利要求5所述的方法,其特征在于,所述根据所述状态信息,确定相应接口在单位时长内的累计历史请求响应量包括:
根据所述状态信息,确定相应接口在接收到所述服务请求之前的单位时长内的累计历史请求响应量和累计请求到达量;
所述根据累计历史请求响应量确定相应接口所对应的调用成功概率包括:
计算所述累计历史请求响应量相对所述累计请求到达量的占比;
根据计算得到的请求响应占比确定相应接口所对应的调用成功概率。
11.根据权利要求10所述的方法,其特征在于,所述根据计算得到的请求响应占比确定相应接口所对应的调用成功概率包括:
获取每个接口在接收到所述服务请求之前多个单位时长的请求响应占比;
根据请求响应占比之间的变化趋势,确定相应接口所对应的调用成功概率。
12.根据权利要求11所述的方法,其特征在于,所述根据请求响应占比之间的变化趋势,确定相应接口所对应的调用成功概率包括:
当多个单位时长中最近的单位时长所对应的请求响应占比最小,或多个单位时长的请求响应占比均相同时,根据比所述最近单位时长所对应请求响应占比小的非负值确定相应接口所对应的调用成功概率;
当多个单位时长中最近的单位时长所对应的请求响应占比最大时,根据所述最近单位时长所对应请求响应占比确定相应接口所对应的调用成功概率。
13.一种接口调用装置,其特征在于,所述装置包括:
链路确定模块,用于确定接收到的服务请求所对应的接口调用链路;
链路分析模块,用于获取所述接口调用链路中每个接口的状态信息;根据所述状态信息计算相应接口的调用成功概率;
接口调用控制模块,用于当每个接口的调用成功概率大于阈值时,调用所述接口调用链路中的接口响应所述服务请求。
14.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至12中任一项所述方法的步骤。
15.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至12中任一项所述方法的步骤。
CN201910726203.1A 2019-08-07 2019-08-07 接口调用方法、装置、计算机可读存储介质和计算机设备 Active CN112346880B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910726203.1A CN112346880B (zh) 2019-08-07 2019-08-07 接口调用方法、装置、计算机可读存储介质和计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910726203.1A CN112346880B (zh) 2019-08-07 2019-08-07 接口调用方法、装置、计算机可读存储介质和计算机设备

Publications (2)

Publication Number Publication Date
CN112346880A true CN112346880A (zh) 2021-02-09
CN112346880B CN112346880B (zh) 2023-10-31

Family

ID=74366642

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910726203.1A Active CN112346880B (zh) 2019-08-07 2019-08-07 接口调用方法、装置、计算机可读存储介质和计算机设备

Country Status (1)

Country Link
CN (1) CN112346880B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114666387A (zh) * 2022-03-25 2022-06-24 广州方硅信息技术有限公司 接口管理系统、方法、存储介质及计算机设备
CN117573481A (zh) * 2024-01-15 2024-02-20 企家有道网络技术(北京)有限公司 接口监控方法、系统、电子设备及计算机可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108304167A (zh) * 2018-02-11 2018-07-20 四川语言桥信息技术有限公司 一种提高接口调用稳定性方法及装置
WO2019062536A1 (zh) * 2017-09-30 2019-04-04 腾讯科技(深圳)有限公司 资源处理方法、装置、系统及计算机可读介质
CN109726062A (zh) * 2018-05-14 2019-05-07 网联清算有限公司 代理服务器的下线方法和控制服务器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019062536A1 (zh) * 2017-09-30 2019-04-04 腾讯科技(深圳)有限公司 资源处理方法、装置、系统及计算机可读介质
CN108304167A (zh) * 2018-02-11 2018-07-20 四川语言桥信息技术有限公司 一种提高接口调用稳定性方法及装置
CN109726062A (zh) * 2018-05-14 2019-05-07 网联清算有限公司 代理服务器的下线方法和控制服务器

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114666387A (zh) * 2022-03-25 2022-06-24 广州方硅信息技术有限公司 接口管理系统、方法、存储介质及计算机设备
CN117573481A (zh) * 2024-01-15 2024-02-20 企家有道网络技术(北京)有限公司 接口监控方法、系统、电子设备及计算机可读存储介质
CN117573481B (zh) * 2024-01-15 2024-04-30 企家有道网络技术(北京)有限公司 接口监控方法、系统、电子设备及计算机可读存储介质

Also Published As

Publication number Publication date
CN112346880B (zh) 2023-10-31

Similar Documents

Publication Publication Date Title
CN110297711B (zh) 批量数据处理方法、装置、计算机设备及存储介质
CN110460676B (zh) 请求量控制方法、装置、存储介质和计算机设备
CN109412852B (zh) 告警方法、装置、计算机设备及存储介质
Armony et al. On customer contact centers with a call-back option: Customer decisions, routing rules, and system design
CN110489447B (zh) 数据查询方法、装置、计算机设备和存储介质
US7890620B2 (en) Monitoring system and monitoring method
US7081823B2 (en) System and method of predicting future behavior of a battery of end-to-end probes to anticipate and prevent computer network performance degradation
US7890297B2 (en) Predictive monitoring method and system
CN109815004B (zh) 请求负载控制方法、装置、存储介质和计算机设备
US8305911B2 (en) System and method for identifying and managing service disruptions using network and systems data
CN106230997B (zh) 一种资源调度方法和装置
SE537197C2 (sv) Metod, nod och datorprogram för möjliggörande av automatiskanpassning av resursenheter
CN110716808B (zh) 业务处理方法、装置、计算机设备和存储介质
CN112346880B (zh) 接口调用方法、装置、计算机可读存储介质和计算机设备
CN111585837B (zh) 物联网数据链路监控方法、装置、计算机设备和存储介质
CN112749056A (zh) 应用服务指标监控方法、装置、计算机设备和存储介质
CN103123602A (zh) 基于java的异常报警监控方法及其装置
CN111277640B (zh) 用户请求处理方法、装置、系统、计算机设备和存储介质
EP1519512A2 (en) Real-time SLA impact analysis
CN111985726A (zh) 资源数量预测方法、装置、电子设备及存储介质
CN112689007A (zh) 资源分配方法、装置、计算机设备和存储介质
CN114826924A (zh) 用于带宽分配的方法及装置
CN114465959A (zh) 接口动态流量控制方法、装置、计算机设备和存储介质
CN1988684B (zh) 网络进程管理方法及装置
CN101951571A (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
GR01 Patent grant
GR01 Patent grant