预测服务容量的方法、装置、计算机设备及存储介质与流程

文档序号:20582611发布日期:2020-04-29 01:35阅读:162来源:国知局
预测服务容量的方法、装置、计算机设备及存储介质与流程

本申请涉及信息管理技术领域,特别涉及一种预测服务容量的方法、装置、计算机设备及存储介质。



背景技术:

在节假日流量高峰期,为保证各服务的稳定性,公司会对各个服务进行服务容量预测,根据预测容量合理安排资源。其中,服务即网络服务,是指服务器为各种应用提供的服务。

相关技术中,工作人员可以获取到多个服务的源服务的预测容量,以及多个服务之间的历史调用数据,再根据以往经验,推算出各服务的预测容量。

相关技术中,工作人员使用服务维度的调用数据进行服务容量的推算,计算粒度粗,导致预测误差大,预测服务容量的准确性低。



技术实现要素:

本申请实施例提供了一种预测服务容量的方法、装置、计算机设备及存储介质,能够解决相关技术中计算粒度粗,导致预测误差大,预测服务容量的准确性低的问题。所述技术方案如下:

一方面,提供了一种预测服务容量的方法,所述方法包括:

获取目标服务的源服务的预测容量,以及所述源服务调用的多个服务的历史接口调用情况,每个服务的接口用于提供所述服务;

根据所述历史接口调用情况,确定从所述源服务调用所述目标服务的至少一条接口调用路径以及每条接口调用路径的容量使用情况;

根据所述源服务的预测容量、所述至少一条接口调用路径以及所述容量使用情况,预测所述目标服务的至少一个目标接口的调用量,将预测的所述至少一个目标接口的调用量之和作为所述目标服务的预测容量。

在一种可能实现方式中,所述根据所述历史接口调用情况,确定从所述源服务调用所述目标服务的至少一条接口调用路径以及每条接口调用路径的容量使用情况,包括:

根据所述历史接口调用情况中接口之间的调用关系,确定从所述源服务调用所述目标服务的至少一条接口调用路径;

根据所述历史接口调用情况中接口对应的调用量,确定每条接口调用路径的容量使用情况。

在一种可能实现方式中,所述根据所述源服务的预测容量、所述至少一条接口调用路径以及所述容量使用情况,预测所述目标服务的至少一个目标接口的调用量,将预测的所述至少一个目标接口的调用量之和作为所述目标服务的预测容量,包括:

将所述目标服务的至少一个目标接口的容量之和作为目标值,以所述目标值最大作为条件,根据所述源服务的预测容量、所述至少一条接口调用路径以及所述容量使用情况求最优解,将最大的所述目标值作为所述目标服务的预测容量。

在一种可能实现方式中,所述至少一条接口调用路径上经过的每个接口作为每个候选节点,所述至少一个目标接口对应的目标服务作为所述至少一个目标接口汇总后的候选节点;

所述根据所述源服务的预测容量、所述至少一条接口调用路径以及容量使用情况求最优解,包括:

对于多个候选节点,根据第一节点与第二节点之间的接口调用情况,将所述第一节点的调用量分配至所述第二节点,所述第一节点为所述多个候选节点中调用量达到最大的候选节点,所述第二节点为所述多个候选节点中所述第一节点调用的候选节点;

将所述第一节点从多个候选节点中去除,将所述第一节点去除时确定的调用量作为所述第一节点的预测调用量;

对去除所述第一节点后的多个候选节点,继续执行调用量分配和去除的步骤,直至每个节点的预测调用量确定时停止。

在一种可能实现方式中,所述根据第一节点与第二节点之间的接口调用情况,将所述第一节点的调用量分配至所述第二节点,包括:

根据所述第一节点和所述第二节点所在接口调用路径的容量使用情况,将所述第一节点的调用量按照所述容量使用情况分配至所述第二节点。

在一种可能实现方式中,所述目标服务的预测容量基于容量预测模型确定;所述容量预测模型的获取过程包括:

根据所述源服务调用的多个服务的历史接口调用情况,构建接口调用模型;

根据服务与接口之间的对应关系,将所述接口调用模型转化为容量预测模型。

在一种可能实现方式中,所述目标服务的预测容量基于容量预测模型确定,包括:

将所述源服务的预测容量输入所述容量预测模型中,由所述容量预测模型执行路径确定和接口调用量预测的步骤,输出所述目标服务的预测容量。

在一种可能实现方式中,所述方法还包括:

根据所述源服务的预测容量、所述至少一条接口调用路径以及所述容量使用情况,预测所述源服务调用的多个服务中所述目标服务之外的其他服务的至少一个接口的调用量,将所述至少一个接口的调用量之和作为所述其他服务的预测容量。

一方面,提供了一种预测服务容量的装置,所述装置包括:

获取模块,用于获取目标服务的源服务的预测容量,以及所述源服务调用的多个服务的历史接口调用情况,每个服务的接口用于提供所述服务;

确定模块,用于根据所述历史接口调用情况,确定从所述源服务调用所述目标服务的至少一条接口调用路径以及每条接口调用路径的容量使用情况;

预测模块,用于根据所述源服务的预测容量、所述至少一条接口调用路径以及所述容量使用情况,预测所述目标服务的至少一个目标接口的调用量,将预测的所述至少一个目标接口的调用量之和作为所述目标服务的预测容量。

在一种可能实现方式中,所述确定模块,用于:

根据所述历史接口调用情况中接口之间的调用关系,确定从所述源服务调用所述目标服务的至少一条接口调用路径;

根据所述历史接口调用情况中接口对应的调用量,确定每条接口调用路径的容量使用情况。

在一种可能实现方式中,所述预测模块,用于:

将所述目标服务的至少一个目标接口的容量之和作为目标值,以所述目标值最大作为条件,根据所述源服务的预测容量、所述至少一条接口调用路径以及所述容量使用情况求最优解,将最大的所述目标值作为所述目标服务的预测容量。

在一种可能实现方式中,所述至少一条接口调用路径上经过的每个接口作为每个候选节点,所述至少一个目标接口对应的目标服务作为所述至少一个目标接口汇总后的候选节点;

所述预测模块,用于:

对于多个候选节点,根据第一节点与第二节点之间的接口调用情况,将所述第一节点的调用量分配至所述第二节点,所述第一节点为所述多个候选节点中调用量达到最大的候选节点,所述第二节点为所述多个候选节点中所述第一节点调用的候选节点;

将所述第一节点从多个候选节点中去除,将所述第一节点去除时确定的调用量作为所述第一节点的预测调用量;

对去除所述第一节点后的多个候选节点,继续执行调用量分配和去除的步骤,直至每个节点的预测调用量确定时停止。

在一种可能实现方式中,所述预测模块,用于:

根据所述第一节点和所述第二节点所在接口调用路径的容量使用情况,将所述第一节点的调用量按照所述容量使用情况分配至所述第二节点。

在一种可能实现方式中,所述目标服务的预测容量基于容量预测模型确定;所述装置还包括:

构建模块,用于根据所述源服务调用的多个服务的历史接口调用情况,构建接口调用模型;

转化模块,用于根据服务与接口之间的对应关系,将所述接口调用模型转化为容量预测模型。

在一种可能实现方式中,所述装置还包括:

执行模块,用于将所述源服务的预测容量输入所述容量预测模型中,由所述容量预测模型执行路径确定和接口调用量预测的步骤,输出所述目标服务的预测容量。

在一种可能实现方式中,所述预测模块,还用于:

根据所述源服务的预测容量、所述至少一条接口调用路径以及所述容量使用情况,预测所述源服务调用的多个服务中所述目标服务之外的其他服务的至少一个接口的调用量,将所述至少一个接口的调用量之和作为所述其他服务的预测容量。

一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现上述的预测服务容量的方法所执行的操作。

一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现上述的预测服务容量的方法所执行的操作。

本申请实施例提供的技术方案带来的有益效果至少包括:

通过获取目标服务的源服务的预测容量和源服务调用的多个服务的历史接口调用情况,根据历史接口调用情况,可以确定源服务调用目标服务的至少一条接口调用路径与每条接口调用路径的容量使用情况,再根据源服务的预测容量、至少一条接口调用路径以及容量使用情况,可以预测得到目标服务的至少一个目标接口的调用量,将该至少一个目标接口的调用量之和作为目标服务的预测容量。本申请使用接口维度的调用数据,进行服务容量的预测,计算粒度细,预测误差小,预测服务容量的准确性高。

附图说明

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

图1是本申请实施例提供的一种预测服务容量的方法的实施环境的示意图;

图2是本申请实施例提供的一种预测服务容量的方法的流程图;

图3是本申请实施例提供的一种预测服务容量的方法的流程图;

图4是本申请实施例提供的一种接口的历史接口调用情况示意图;

图5是本申请实施例提供的一种调用链拓扑结构的示意图;

图6是本申请实施例提供的一种接口调用模型的示意图;

图7是本申请实施例提供的一种接口调用模型的示意图;

图8是本申请实施例提供的一种容量预测模型的示意图;

图9是本申请实施例提供的一种改进迪杰斯特拉算法示意图;

图10是本申请实施例提供的一种改进迪杰斯特拉算法示意图;

图11是本申请实施例提供的一种预测服务容量的核心模块示意图;

图12是本申请实施例提供的一种预测服务容量的装置的结构示意图;

图13是本申请实施例提供的一种终端的结构示意图;

图14是本申请实施例提供的一种服务器的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

图1是本申请实施例提供的预测服务容量的方法的实施环境的示意图。参见图1,该实施环境包括:计算机设备101和监控平台102,计算机设备101可以为终端或服务器,终端可以是手机、平板电脑、台式计算机、笔记本电脑等。监控平台102可以为开源分布式监控平台、集中式监控平台、开源运维管理平台等,计算机设备101和监控平台102可以相互通信,监控平台102中可以存储有多个服务的历史接口调用情况,监控平台102可以将该历史接口调用情况发送给计算机设备101,计算机设备101即可获取到多个服务的历史接口调用情况,并根据本申请提供的方法预测得到目标服务的预测容量,工作人员即可根据预测得到的目标服务的预测容量合理分配容量。

图2是本申请实施例提供的一种预测服务容量的方法的流程图。该实施例仅以计算机设备为执行主体进行说明,参见图2,该实施例包括:

在步骤201中,计算机设备获取目标服务的源服务的预测容量,以及源服务调用的多个服务的历史接口调用情况。

计算机设备可以获取目标服务的源服务的预测容量和源服务调用的多个服务的历史接口调用情况,从而基于该预测容量和历史接口调用情况,预测目标服务的预测容量。

其中,服务是指网络为各种应用提供的功能服务,如存储、计算等,服务之间可以调用,上层服务能够调用下层服务,即下层服务能够为上层服务提供服务,如n层及以下各层可以向n+1层提供服务,n的取值范围为正整数。服务中可以包含一个或多个接口,接口是相邻两层间交换信息的连接点。每个服务的接口用于提供服务,调用服务可以通过调用接口实现。源服务可以为调用目标服务的上层服务。

从上述服务之间调用情况可以得到,每个服务均具有一个或多个源服务。该源服务是指各个服务的入口,也可以称之为入口服务。服务的源服务可以直接或间接地调用该服务。例如,如图4所示,图4中源服务为b,源服务的接口为b.in2,当服务b要调用服务e时,可以通过接口b.in2向接口e.in1调用,当服务b要调用服务f时,可以通过接口b.in2向接口f.in1调用。

源服务可以调用源服务下层的各个服务,并为各个服务分配容量。目标服务是期望预估容量的服务。历史接口调用情况可以包括服务的名称标识、接口的调用量、接口之间的调用量、接口之间的调用关系等。接口的调用量是指接口的原调用量,接口之间的调用量是指从一个接口到另一个接口的调用量,如从接口a到接口b的调用量。

在一种可能实现方式中,根据源服务的历史容量,可以预测得到源服务的预测容量,计算机设备可以获取到源服务的预测容量。通过开源分布式监控平台,计算机设备可以获取到源服务调用的多个服务的历史接口调用情况,包括源服务的名称标识、目标服务的名称标识、多个服务间的接口的名称标识、接口的调用量和接口之间的调用量。

在一种可能实现方式中,根据源服务的历史容量确定源服务的预测容量时,在网络高峰时期,可以将源服务的容量提高一定倍数,在网络低峰时期,可以将源服务的容量降低一定倍数。

例如,在周末、节假日等高峰时期,为保证各服务的稳定性,可以将源服务的容量提高,如周末时可以将周五的源服务的预测容量提高2倍或3倍。当源服务为多个时,工作人员可以将每个源服务的预测容量均提高相同倍数。或者,工作人员也可以将一部分源服务的预测容量提高2倍,将另一部分的源服务的预测容量提高3倍。本申请实施例对此不做限定。

例如,图4是本申请实施例提供的一种接口的历史接口调用情况示意图,如图4所示,表示获取一个接口的历史接口调用情况,包括接口b.in2的调用量、从接口b.in2到接口e.in1的调用量、从接口b.in2到接口f.in1的调用量。

在步骤202中,计算机设备根据历史接口调用情况,确定从源服务调用目标服务的至少一条接口调用路径以及每条接口调用路径的容量使用情况。

计算机设备获取到目标服务的源服务的预测容量和源服务调用的多个服务的历史接口调用情况后,根据源服务调用的多个服务的历史接口调用情况进行分析,可以确定从源服务调用目标服务的至少一条接口调用路径和每条接口调用路径的容量使用情况,从而预测目标服务的容量。其中,容量使用情况是指每条接口调用路径中相连接的两个接口之间的调用量情况。

在一种可能实现方式中,计算机设备获取到源服务调用的多个服务的历史接口调用情况后,根据历史接口调用情况中接口之间的调用关系,可以确定从源服务调用目标服务的至少一条接口调用路径。根据历史接口调用情况中接口对应的调用量,可以确定每条接口调用路径的容量使用情况。其中,接口对应的调用量包括接口的调用量和接口之间的调用量。

在一种可能实现方式中,每条接口调用路径的容量使用情况可以为接口之间的调用权重,对于每条接口调用路径中相连接的两个接口,根据接口之间的调用关系,可以确定两个接口中的被调接口和主调接口,将两个接口之间的调用量与主调接口的调用量的比值,作为两个接口之间的调用权重,即从主调接口到被调接口的调用量占主调接口的调用量的权重比例。其中,主调接口是发起调用的接口,被调接口是被调用的接口。在另一种可能实现方式中,每条接口调用路径的容量使用情况可以为接口之间的调用量。

在步骤203中,计算机设备根据源服务的预测容量、至少一条接口调用路径以及容量使用情况,预测目标服务的至少一个目标接口的调用量,将预测的至少一个目标接口的调用量之和作为目标服务的预测容量。

计算机设备获取到至少一个目标接口的调用量以及容量使用情况后,再根据源服务的预测容量可以预测得到目标服务的预测容量。

在一种可能实现方式中,计算机设备可以将目标服务的至少一个目标接口的容量之和作为目标值,以目标值最大作为条件,根据源服务的预测容量、至少一条接口调用路径以及容量使用情况求最优解,将最大的目标值作为目标服务的预测容量。

具体的,计算机设备可以将至少一条接口调用路径上经过的每个接口可以作为每个候选节点,至少一个目标接口对应的目标服务可以作为至少一个目标接口汇总后的候选节点。对于多个候选节点,根据第一节点与第二节点之间的接口调用情况,将第一节点的调用量分配至第二节点,第一节点为多个候选节点中调用量达到最大的候选节点,第二节点为多个候选节点中第一节点调用的候选节点。将第一节点从多个候选节点中去除,将第一节点去除时确定的调用量作为第一节点的预测调用量,对去除第一节点后的多个候选节点,继续执行调用量分配和去除的步骤,直至每个节点的预测调用量确定时停止。

在一种可能实现方式中,将第一节点的调用量分配至第二节点的过程可以为根据第一节点和第二节点所在接口调用路径的容量使用情况,将第一节点的调用量按照容量使用情况分配至第二节点。

例如,接口调用路径的容量使用情况可以为节点之间的调用权重,获取到第一节点的调用量,以及第一节点和第二节点之间的调用权重后,将第一节点的调用量与该调用权重的乘积作为第一节点分配至第二节点的调用量。

在一种可能实现方式中,根据源服务的预测容量、至少一条接口调用路径以及容量使用情况,预测源服务调用的多个服务中目标服务之外的其他服务的至少一个接口的调用量,将至少一个接口的调用量之和作为其他服务的预测容量。

通过获取目标服务的源服务的预测容量和源服务调用的多个服务的历史接口调用情况,根据历史接口调用情况,可以确定源服务调用目标服务的至少一条接口调用路径与每条接口调用路径的容量使用情况,再根据源服务的预测容量、至少一条接口调用路径以及容量使用情况,可以预测得到目标服务的至少一个目标接口的调用量,将至少一个目标接口的调用量之和作为目标服务的预测容量。本申请使用接口维度的调用数据,进行服务容量的预测,计算粒度细,预测误差小,利用算法将目标服务的至少一个目标接口的容量之和作为目标值,以目标值最大作为条件,预测得到服务容量的最优解,预测服务容量的准确性高。

上述图2所示实施例中,提供了一种预测服务容量的方法,计算机设备可以确定接口调用路径和每条接口调用路径的容量使用情况,进而预测目标服务的容量。在一种可能实现方式中,上述方法中目标服务的预测容量可以基于容量预测模型确定。也即是,计算机设备可以建立容量预测模型,基于容量预测模型确定目标服务的预测容量。下面通过图3所示实施例,对使用模型实现上述预测服务容量的方法的具体过程进行说明。

图3是本申请实施例提供的一种预测服务容量的方法的流程图。该实施例以计算机设备为执行主体进行说明,参见图3,该实施例包括:

在步骤301中,计算机设备获取目标服务的源服务的预测容量,以及源服务调用的多个服务的历史接口调用情况。

步骤301与上述步骤201同理,在此不多做赘述。

在步骤302中,计算机设备根据源服务调用的多个服务的历史接口调用情况,构建接口调用模型。

计算机设备获取到历史接口调用情况后,可以构建接口调用模型,再进行后续操作。其中,接口调用模型是指以图的形式表示多个服务之间的接口之间的相互关系。该接口调用模型中包括多个服务、多个接口、多个接口的调用量、多个接口之间的调用量。

在一种可能实现方式中,计算机设备获取到源服务调用的多个服务的历史接口调用情况后,根据历史接口调用情况中多个服务的之间接口的调用关系、接口的调用量与接口之间的调用量,构建得到接口调用模型。

例如,图5是本申请实施例提供的一种调用链拓扑结构的示意图,如图5所示,图5中包括服务a、服务b、服务d、服务e和服务f以及其对应的多个接口,服务a包括接口a.in1,服务b包括接口b.in1和接口b.in2,服务d包括接口d.in1,服务e包括接口e.in1和接口e.in2,服务f包括接口f.in1。两个接口之间的连接线为一个span,多个span可以组成一个调用链。span表示一次方法调用、一个程序块的调用、一次rpc(remoteprocedurecall,远程过程调用)调用或数据库访问,记录了主调节点和被调节点之间的关系。一次方法调用中,两个接口之间的连接线的箭头指向的接口为被调接口,两个接口之间的连接线的线段指向的接口为主调接口。主调接口是指一次rpc调用或一次方法调用中,发起调用的接口,被调接口是指一次rpc调用或一次方法调用中,被调用的接口。

图6是本申请实施例提供的一种接口调用模型的示意图,如图6所示,包括服务a、服务b、服务d、服务e和服务f以及其对应的多个接口,服务a包括接口a.in1和接口a.in2,服务b包括接口b.in1和接口b.in2,服务d包括接口d.in1,服务e包括接口e.in1和接口e.in2,服务f包括接口f.in1。通过接口的调用关系,可以构建得到接口调用模型,如图6所示,根据多个接口及每个接口对应的span,可以构建得到接口调用模型。图6中接口a.in2对应两个span,接口a.in2与接口b.in2之间的span表示接口a.in2向接口b.in2发起的调用,接口a.in2与接口d.in1之间的span表示接口a.in2向接口d.in1发起的调用,此时接口b.in2和接口d.in1为被调接口,接口a.in2为主调接口。接口a.in1与接口b.in1之间的span表示接口a.in1向接口b.in1发起的调用。

在步骤303中,计算机设备根据服务与接口之间的对应关系,将接口调用模型转化为容量预测模型。

计算机设备构建得到接口调用模型后,可以根据服务与接口之间的对应关系,将接口调用模型转化为容量预测模型,基于容量预测模型预测目标服务的容量。其中,容量预测模型用于根据源服务的预测容量预测目标服务的容量。

在一种可能实现方式中,计算机设备构建得到接口调用模型后,根据服务与接口之间的对应关系,将接口调用模型中的多个服务进行分层,得到输入服务层、接口层与输出服务层,输入服务层中包括源服务节点,接口层中包括源服务与目标服务之间的多个接口节点,输出服务层中包括目标服务节点,从而得到容量预测模型。

例如,图7是本申请实施例提供的一种接口调用模型的示意图,如图7所示,接口调用模型中包括服务a、服务r、服务s、服务t和服务e,服务a为源服务,源服务可以从外界调用,服务e为目标服务。源服务a可以包括接口a.in1和接口a.in2,目标服务e包括接口e.in1和接口e.in2,中间还包括各个服务,服务r、服务s和服务t,服务r包括接口r.in2、服务s包括接口s.in2,服务t包括接口t.in2。图8是本申请实施例提供的一种容量预测模型的示意图,该容量预测模型是由图7的接口调用模型转化得到的,如图8所示,容量预测模型中包括的输入服务层包括源服务节点a,输出服务层包括目标服务节点e,接口层包括接口节点a.in1、接口节点a.in2、接口节点r.in2、接口节点s.in2、接口节点t.in2、接口节点e.in1和接口节点e.in2。

在步骤304中,计算机设备将源服务的预测容量输入容量预测模型,由容量预测模型根据历史接口调用情况,确定从源服务调用目标服务的至少一条接口调用路径以及每条接口调用路径的容量使用情况。

计算机设备构建得到容量预测模型后,可以将源服务的预测容量输入容量预测模型,容量预测模型可以根据该源服务的预测容量、该历史接口调用情况,确定源服务调用目标服务的至少一条接口调用路径,以及每条接口调用路径的容量使用情况,进而预测目标服务的预测容量。

在一种可能实现方式中,计算机设备将源服务的预测容量输入容量预测模型后,容量预测模型可以根据该历史接口调用情况中的接口的调用关系,确定源服务调用目标服务的至少一条接口调用路径,根据该历史接口调用情况中的接口的调用量,以及接口之间的调用量,可以确定每条接口调用路径的容量使用情况。

在一种可能实现方式中,每条接口调用路径的容量使用情况可以为接口之间的调用权重,容量预测模型确定每条接口调用路径的接口之间的调用权重后,可以在容量预测模型中的每条接口调用路径上标定接口之间的调用权重。如图8所示,图8中每条接口调用路径上标定有接口之间的调用权重,如接口节点a.in1和接口节点s.in2连接的边上标定的调用权重为0.6,即接口节点a.in1和接口节点s.in2之间的调用权重为0.6。

在另一种可能实现方式中,每条接口调用路径的容量使用情况可以为接口之间的调用量,容量预测模型确定每条接口调用路径的接口之间的调用量后,可以在容量预测模型中的每条接口调用路径上标定接口之间的调用量。

在步骤305中,计算机设备基于容量预测模型,根据源服务的预测容量、至少一条接口调用路径以及每条接口调用路径的容量使用情况,预测目标服务的至少一个目标接口的调用量,将预测的至少一个目标接口的调用量之和作为目标服务的预测容量,并输出目标服务的预测容量。

计算机设备构建得到容量预测模型后,可以基于容量预测模型,根据源服务的预测容量、至少一条调用路径以及每条调用路径上的容量使用情况,可以确定目标服务的至少一个目标接口的调用量,进而得到目标服务的预测容量。

在一种可能实现方式中,计算机设备将源服务的预测容量输入容量预测模型后,由容量预测模型根据源服务的预测容量、至少一条接口调用路径以及容量使用情况,预测得到目标服务的至少一个目标接口的调用量,将该至少一个目标接口的调用量之和作为目标服务的预测容量,容量预测模型可以输出目标服务的预测容量。

在一种可能实现方式中,容量预测模型可以运行改进迪杰斯特拉算法,预测得到目标服务的至少一个目标接口的调用量,根据该至少一个目标接口的调用量预测得到目标服务的预测容量。

其中,改进迪杰斯特拉算法是一种计算链路网络的最大容量的算法,是对迪杰斯特拉算法进行改进得到的算法。迪杰斯特拉算法是一种求解单源最短路径的算法,该算法的时间复杂度为o(elogv),v表示节点个数,e表示边的个数。由于求解最短路径是最小化问题,本申请实施例将其修改,得到改进迪杰斯特拉算法,用于计算链路网络的最大容量。

具体地,计算机设备将源服务的预测容量输入容量预测模型中后,根据源服务的预测容量以及容量使用情况,运行改进迪杰斯特拉算法。将目标服务节点和接口节点的集合作为节点候选区,在节点候选区中,选取调用量达到最大的节点,将该节点移出节点候选区。对于节点候选区中的每个其他节点,基于该节点的调用量、该其他节点的原调用量、该节点与该其他节点之间的容量使用情况和公式vk2=vk1+vi*wi,k,确定该其他节点的预测调用量。在节点候选区中,重复选取调用量达到最大的节点,直至节点候选区中没有节点,进行迭代运算,得到节点候选区中多个节点的调用量,该调用量为每个节点的预测调用量。节点候选区中包括目标服务节点,计算机设备可以输出目标服务节点的预测调用量,该预测调用量为目标服务的预测容量。其中,vk2为其他节点的预测调用量,vk1为其他节点的原调用量,vi为节点的调用量,wi,k为该节点与该其他节点之间的容量使用情况。

例如,图9是本申请实施例提供的一种改进迪杰斯特拉算法示意图,改进迪杰斯特拉算法的基本原理,是根据贪心策略,通过求解子问题的局部最优解,来求解原问题的全局最优解。贪心策略是指从节点候选区找到一个调用量达到最大的节点,即找到一个调用量完全确定的节点,并将该节点移出节点候选区,如图9所示,在节点候选区中选取调用量达到最大的节点,该节点的调用量为0.6*0.5。图10是本申请实施例提供的一种改进迪杰斯特拉算法示意图,如图10所示,选取调用量达到最大的节点后,将该节点移出节点候选区,再进行边松弛操作,遍历贪心策略选择的节点的边,根据上述公式vk2=vk1+vi*wi,k,更新节点候选区内剩余的其它节点的调用量。

图11是本申请实施例提供的一种预测服务容量的核心模块示意图,图11包括模型加载模块、输入模块、数据处理模块和输出模块,其中,模型加载模块用于从开源分布式监控平台获取源服务调用的多个服务的历史接口调用情况,根据多个服务的历史接口调用情况构建容量预测模型。输入模块用于在容量预测模型中输入源服务的appkey(服务标识)和预测容量。数据处理模块用于从输入服务层开始标记接口调用路径,可以计算得到多个节点的预测调用量。输出模块用于输出目标服务的预测调用量,即目标服务的预测容量。

通过获取目标服务的源服务的预测容量和源服务调用的多个服务的历史接口调用情况,根据历史接口调用情况,可以构建得到容量预测模型,容量预测模型可以输出目标服务的预测容量。本申请使用接口维度的调用数据,进行服务容量的预测,计算粒度细,预测误差小,预测服务容量的准确性高。通过构建容量预测模型,运行改进迪杰斯特拉算法,可以直接输出目标服务的预测容量,能够高效的计算出目标服务的预测容量,降低了人工推算的成本,减小了推算时间。

本申请实施例中,可以根据步骤201至步骤203,由计算机设备根据历史调用情况确定接口调用路径和每条接口调用路径的容量使用情况后,将目标服务的至少一个目标接口的容量之和作为目标值,以目标值最大作为条件,预测得到目标接口的容量,进而预测得到目标服务的容量。也可以根据步骤301至步骤304,根据历史调用情况构建容量预测模型,输入源服务的预测容量,输出目标服务的预测容量。本申请实施例对此不做限定。

上述所有可选技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。

图12是本申请实施例提供的一种预测服务容量的装置的结构示意图,参见图12,该装置包括:

获取模块1201,用于获取目标服务的源服务的预测容量,以及源服务调用的多个服务的历史接口调用情况,每个服务的接口用于提供服务;

确定模块1202,用于根据历史接口调用情况,确定从源服务调用目标服务的至少一条接口调用路径以及每条接口调用路径的容量使用情况;

预测模块1203,用于根据源服务的预测容量、至少一条接口调用路径以及容量使用情况,预测目标服务的至少一个目标接口的调用量,将预测的至少一个目标接口的调用量之和作为目标服务的预测容量。

在一种可能实现方式中,确定模块1202,用于:

根据历史接口调用情况中接口之间的调用关系,确定从源服务调用目标服务的至少一条接口调用路径;

根据历史接口调用情况中接口对应的调用量,确定每条接口调用路径的容量使用情况。

在一种可能实现方式中,预测模块1203,用于:

将目标服务的至少一个目标接口的容量之和作为目标值,以目标值最大作为条件,根据源服务的预测容量、至少一条接口调用路径以及容量使用情况求最优解,将最大的目标值作为目标服务的预测容量。

在一种可能实现方式中,至少一条接口调用路径上经过的每个接口作为每个候选节点,至少一个目标接口对应的目标服务作为至少一个目标接口汇总后的候选节点;

预测模块1203,用于:

对于多个候选节点,根据第一节点与第二节点之间的接口调用情况,将第一节点的调用量分配至第二节点,第一节点为多个候选节点中调用量达到最大的候选节点,第二节点为多个候选节点中第一节点调用的候选节点;

将第一节点从多个候选节点中去除,将第一节点去除时确定的调用量作为第一节点的预测调用量;

对去除第一节点后的多个候选节点,继续执行调用量分配和去除的步骤,直至每个节点的预测调用量确定时停止。

在一种可能实现方式中,预测模块1203,用于:

根据第一节点和第二节点所在接口调用路径的容量使用情况,将第一节点的调用量按照容量使用情况分配至第二节点。

在一种可能实现方式中,目标服务的预测容量基于容量预测模型确定;该装置还包括:

构建模块,用于根据源服务调用的多个服务的历史接口调用情况,构建接口调用模型;

转化模块,用于根据服务与接口之间的对应关系,将接口调用模型转化为容量预测模型。

在一种可能实现方式中,该装置还包括:

执行模块,用于将源服务的预测容量输入容量预测模型中,由容量预测模型执行路径确定和接口调用量预测的步骤,输出目标服务的预测容量。

在一种可能实现方式中,预测模块,还用于:

根据源服务的预测容量、至少一条接口调用路径以及容量使用情况,预测源服务调用的多个服务中目标服务之外的其他服务的至少一个接口的调用量,将至少一个接口的调用量之和作为其他服务的预测容量。

通过获取目标服务的源服务的预测容量和源服务调用的多个服务的历史接口调用情况,根据历史接口调用情况,可以确定源服务调用目标服务的至少一条接口调用路径与每条接口调用路径的容量使用情况,再根据源服务的预测容量、至少一条接口调用路径以及容量使用情况,可以预测得到目标服务的至少一个目标接口的调用量,将该至少一个目标接口的调用量之和作为目标服务的预测容量。本申请使用接口维度的调用数据,进行服务容量的预测,计算粒度细,预测误差小,通过构建容量预测模型,利用算法将目标服务的至少一个目标接口的容量之和作为目标值,以目标值最大作为条件,预测得到服务容量的最优解,预测服务容量的准确性高。

需要说明的是:上述实施例提供的预测服务容量的装置在预测服务容量时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的预测服务容量的装置与预测服务容量的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

本申请实施例提供的计算机设备,可以提供为一种终端,图13是本申请实施例提供的一种终端的结构示意图。该终端1300可以是:智能手机、平板电脑、mp3播放器(movingpictureexpertsgroupaudiolayeriii,动态影像专家压缩标准音频层面3)、mp4(movingpictureexpertsgroupaudiolayeriv,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端1300还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。

通常,终端1300包括有:处理器1301和存储器1302。

处理器1301可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1301可以采用dsp(digitalsignalprocessing,数字信号处理)、fpga(field-programmablegatearray,现场可编程门阵列)、pla(programmablelogicarray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1301也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(centralprocessingunit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1301可以在集成有gpu(graphicsprocessingunit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1301还可以包括ai(artificialintelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。

存储器1302可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1302还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1302中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1301所执行以实现本申请中方法实施例提供的预测服务容量的方法。

在一些实施例中,终端1300还可选包括有:外围设备接口1303和至少一个外围设备。处理器1301、存储器1302和外围设备接口1303之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1303相连。具体地,外围设备包括:射频电路1304、触摸显示屏1305、摄像头1306、音频电路1307、定位组件1308和电源1309中的至少一种。

外围设备接口1303可被用于将i/o(input/output,输入/输出)相关的至少一个外围设备连接到处理器1301和存储器1302。在一些实施例中,处理器1301、存储器1302和外围设备接口1303被集成在同一芯片或电路板上;在一些其他实施例中,处理器1301、存储器1302和外围设备接口1303中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。

射频电路1304用于接收和发射rf(radiofrequency,射频)信号,也称电磁信号。射频电路1304通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1304将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1304包括:天线系统、rf收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1304可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2g、3g、4g及5g)、无线局域网和/或wifi(wirelessfidelity,无线保真)网络。在一些实施例中,射频电路1304还可以包括nfc(nearfieldcommunication,近距离无线通信)有关的电路,本申请对此不加以限定。

显示屏1305用于显示ui(userinterface,用户界面)。该ui可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1305是触摸显示屏时,显示屏1305还具有采集在显示屏1305的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1301进行处理。此时,显示屏1305还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1305可以为一个,设置终端1300的前面板;在另一些实施例中,显示屏1305可以为至少两个,分别设置在终端1300的不同表面或呈折叠设计;在再一些实施例中,显示屏1305可以是柔性显示屏,设置在终端1300的弯曲表面上或折叠面上。甚至,显示屏1305还可以设置成非矩形的不规则图形,也即异形屏。显示屏1305可以采用lcd(liquidcrystaldisplay,液晶显示屏)、oled(organiclight-emittingdiode,有机发光二极管)等材质制备。

摄像头组件1306用于采集图像或视频。可选地,摄像头组件1306包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及vr(virtualreality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1306还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。

音频电路1307可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1301进行处理,或者输入至射频电路1304以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端1300的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1301或射频电路1304的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1307还可以包括耳机插孔。

定位组件1308用于定位终端1300的当前地理位置,以实现导航或lbs(locationbasedservice,基于位置的服务)。定位组件1308可以是基于美国的gps(globalpositioningsystem,全球定位系统)、中国的北斗系统、俄罗斯的格雷纳斯系统或欧盟的伽利略系统的定位组件。

电源1309用于为终端1300中的各个组件进行供电。电源1309可以是交流电、直流电、一次性电池或可充电电池。当电源1309包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。

在一些实施例中,终端1300还包括有一个或多个传感器1310。该一个或多个传感器1310包括但不限于:加速度传感器1311、陀螺仪传感器1312、压力传感器1313、指纹传感器1314、光学传感器1315以及接近传感器1316。

加速度传感器1311可以检测以终端1300建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1311可以用于检测重力加速度在三个坐标轴上的分量。处理器1301可以根据加速度传感器1311采集的重力加速度信号,控制触摸显示屏1305以横向视图或纵向视图进行用户界面的显示。加速度传感器1311还可以用于游戏或者用户的运动数据的采集。

陀螺仪传感器1312可以检测终端1300的机体方向及转动角度,陀螺仪传感器1312可以与加速度传感器1311协同采集用户对终端1300的3d动作。处理器1301根据陀螺仪传感器1312采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变ui)、拍摄时的图像稳定、游戏控制以及惯性导航。

压力传感器1313可以设置在终端1300的侧边框和/或触摸显示屏1305的下层。当压力传感器1313设置在终端1300的侧边框时,可以检测用户对终端1300的握持信号,由处理器1301根据压力传感器1313采集的握持信号进行左右手识别或快捷操作。当压力传感器1313设置在触摸显示屏1305的下层时,由处理器1301根据用户对触摸显示屏1305的压力操作,实现对ui界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。

指纹传感器1314用于采集用户的指纹,由处理器1301根据指纹传感器1314采集到的指纹识别用户的身份,或者,由指纹传感器1314根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器1301授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器1314可以被设置终端1300的正面、背面或侧面。当终端1300上设置有物理按键或厂商logo时,指纹传感器1314可以与物理按键或厂商logo集成在一起。

光学传感器1315用于采集环境光强度。在一个实施例中,处理器1301可以根据光学传感器1315采集的环境光强度,控制触摸显示屏1305的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏1305的显示亮度;当环境光强度较低时,调低触摸显示屏1305的显示亮度。在另一个实施例中,处理器1301还可以根据光学传感器1315采集的环境光强度,动态调整摄像头组件1306的拍摄参数。

接近传感器1316,也称距离传感器,通常设置在终端1300的前面板。接近传感器1316用于采集用户与终端1300的正面之间的距离。在一个实施例中,当接近传感器1316检测到用户与终端1300的正面之间的距离逐渐变小时,由处理器1301控制触摸显示屏1305从亮屏状态切换为息屏状态;当接近传感器1316检测到用户与终端1300的正面之间的距离逐渐变大时,由处理器1301控制触摸显示屏1305从息屏状态切换为亮屏状态。

本领域技术人员可以理解,图13中示出的结构并不构成对终端1300的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。

本申请实施例提供的计算机设备,可以提供为一种服务器,图14是本申请实施例提供的一种服务器的结构示意图,该服务器1400可因配置或性能不同而产生比较大的差异,可以包括一个或多个处理器(centralprocessingunits,cpu)1401和一个或多个的存储器1402,其中,所述一个或多个存储器1402中存储有至少一条指令,所述至少一条指令由所述一个或多个处理器1401加载并执行以实现上述各个方法实施例提供的方法。当然,该服务器1400还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器1400还可以包括其他用于实现设备功能的部件,在此不做赘述。

在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由终端中的处理器执行以完成上述实施例中预测服务容量的方法。例如,所述计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

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