CN115934292A - 微服务应用的调用方法、装置及设备 - Google Patents
微服务应用的调用方法、装置及设备 Download PDFInfo
- Publication number
- CN115934292A CN115934292A CN202211735561.7A CN202211735561A CN115934292A CN 115934292 A CN115934292 A CN 115934292A CN 202211735561 A CN202211735561 A CN 202211735561A CN 115934292 A CN115934292 A CN 115934292A
- Authority
- CN
- China
- Prior art keywords
- application
- instance
- request
- calling
- determining
- 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.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本申请实施例提供一种微服务应用的调用方法、装置及设备,该方法包括:获取第二应用对第一应用的调用请求,第一应用和第二应用为微服务应用;若不存在第一应用的应用实例,通过第二应用对应的代理程序请求创建第一应用的应用实例;通过应用实例对调用请求进行处理。提高了微服务应用的调用可靠性。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种微服务应用的调用方法、装置及设备。
背景技术
微服务应用平台中可以包括多个微服务应用,该多个微服务应用之间可以互相调用。
在相关技术中,微服务应用可能存在多个应用实例,也可能不存在应用实例。在实际应用过程中,在第一微服务应用调用第二微服务应用时,若第二微服务应用不存在应用实例,则微服务应用平台会进行报错,并结束第一微服务应用对第二微服务应用的调用过程,导致微服务应用的调用可靠性较低。
发明内容
本申请的多个方面提供一种微服务应用的调用方法、装置及设备,用于提高微服务应用的调用可靠性。
第一方面,本申请实施例提供一种微服务应用的调用方法,包括:
获取第二应用对第一应用的调用请求,所述第一应用和所述第二应用为微服务应用;
若不存在所述第一应用的应用实例,通过所述第二应用对应的代理程序请求创建所述第一应用的应用实例;
通过所述应用实例对所述调用请求进行处理。
在一种可能的实施方式中,通过代理程序请求创建所述第一应用的应用实例,包括:
确定配置方式,所述配置方式为异步方式或者同步方式;
按照所述配置方式,通过所述代理程序请求创建所述第一应用的应用实例。
在一种可能的实施方式中,所述配置方式为所述异步方式;按照所述配置方式,通过所述代理程序请求创建所述第一应用的应用实例,包括:
通过所述代理程序生成所述第一应用对应的无实例事件,所述无实例事件包括所述第一应用的标识和实例需求数量;
通过所述代理程序发布所述无实例事件;
在激活器获取到所述无实例事件后,通过所述激活器请求创建所述第一应用的应用实例。
在一种可能的实施方式中,通过所述代理程序生成所述第一应用对应的无实例事件,包括:
确定在预设时段内获取到的对所述第一应用的调用请求的第一数量;
根据所述第一数量确定所述实例需求数量;
根据所述第一应用的标识和所述实例需求数量,生成所述无实例事件。
在一种可能的实施方式中,所述配置方式为所述同步方式;按照所述配置方式,通过所述代理程序请求创建所述第一应用的应用实例,包括:
确定在预设时段内获取到的对所述第一应用的调用请求的第一数量;
根据所述第一数量确定所述实例需求数量;
通过所述代理程序向激活器发送实例创建请求,所述实例创建请求包括所述第一应用的标识和所述实例需求数量;
通过所述激活器请求创建所述第一应用的应用实例。
在一种可能的实施方式中,通过代理程序请求创建所述第一应用的应用实例之前,还包括:
将所述调用请求添加到阻塞队列中;
通过所述应用实例对所述调用请求进行处理,包括:
在确定所述应用实例创建成功之后,在所述阻塞队列中获取所述调用请求;
通过所述应用实例对所述调用请求进行处理。
在一种可能的实施方式中,所述方法还包括:
获取所述代理程序采集得到的所述第二应用对所述第一应用的第一调用数据;
根据所述第一调用数据,确定所述第一应用的目标应用实例数;
根据所述目标应用实例数,更新所述第一应用的应用实例。
在一种可能的实施方式中,所述第一调用数据包括所述第二应用在预设时段内对所述第一应用的实际单位时间请求数;根据所述第一调用数据,确定所述第一应用的目标应用实例数,包括:
若所述实际单位时间请求数为0,则确定所述目标应用实例数为0;
若所述实际单位时间请求数大于0,则获取所述第一应用的当前应用实例数、单个应用实例的期望单位时间请求数,并根据所述实际单位时间请求数、当前应用实例数和所述期望单位时间请求数,确定所述目标应用实例数。
在一种可能的实施方式中,根据所述实际单位时间请求数、当前应用实例数和所述期望单位时间请求数,确定所述目标应用实例数,包括:
根据所述实际单位时间请求数和所述当前应用实例数,确定当前单位时间平均请求数;
根据所述当前单位时间平均请求数、所述期望单位时间请求数和所述当前应用实例数,确定所述目标应用实例数。
在一种可能的实施方式中,获取所述代理程序采集得到的所述第二应用对所述第一应用的第一调用数据,包括:
通过数据采集器在所述第二应用对应的内存中获取所述第二应用对至少一个应用进行调用的至少一个调用数据,所述至少一个调用数据为所述代理程序采集得到的;
根据所述第一应用的标识,通过指标转换器在所述数据采集器中获取所述第一调用数据。
第二方面,本申请实施例提供一种微服务应用的调用装置,包括:第一获取模块、创建模块和处理模块,其中,
所述第一获取模块用于,获取第二应用对第一应用的调用请求,所述第一应用和所述第二应用为微服务应用;
所述创建模块用于,若不存在所述第一应用的应用实例,通过所述第二应用对应的代理程序请求创建所述第一应用的应用实例;
所述处理模块用于,通过所述应用实例对所述调用请求进行处理。
在一种可能的实施方式中,所述创建模块具体用于:
确定配置方式,所述配置方式为异步方式或者同步方式;
按照所述配置方式,通过所述代理程序请求创建所述第一应用的应用实例。
在一种可能的实施方式中,所述创建模块具体用于:
通过所述代理程序生成所述第一应用对应的无实例事件,所述无实例事件包括所述第一应用的标识和实例需求数量;
通过所述代理程序发布所述无实例事件;
在激活器获取到所述无实例事件后,通过所述激活器请求创建所述第一应用的应用实例。
在一种可能的实施方式中,所述创建模块具体用于:
确定在预设时段内获取到的对所述第一应用的调用请求的第一数量;
根据所述第一数量确定所述实例需求数量;
根据所述第一应用的标识和所述实例需求数量,生成所述无实例事件。
在一种可能的实施方式中,所述创建模块具体用于:
确定在预设时段内获取到的对所述第一应用的调用请求的第一数量;
根据所述第一数量确定所述实例需求数量;
通过所述代理程序向激活器发送实例创建请求,所述实例创建请求包括所述第一应用的标识和所述实例需求数量;
通过所述激活器请求创建所述第一应用的应用实例。
在一种可能的实施方式中,所述微服务应用的调用装置还包括:添加模块,
所述添加模块用于,将所述调用请求添加到阻塞队列中;
所述处理模块具体用于:
在确定所述应用实例创建成功之后,在所述阻塞队列中获取所述调用请求;
通过所述应用实例对所述调用请求进行处理。
在一种可能的实施方式中,所述微服务应用的调用装置还包括:第二获取模块、确定模块和更新模块,其中,
所述第二获取模块用于,获取所述代理程序采集得到的所述第二应用对所述第一应用的第一调用数据;
所述确定模块用于,根据所述第一调用数据,确定所述第一应用的目标应用实例数;
所述更新模块用于,根据所述目标应用实例数,更新所述第一应用的应用实例。
在一种可能的实施方式中,所述确定模块具体用于:
若所述实际单位时间请求数为0,则确定所述目标应用实例数为0;
若所述实际单位时间请求数大于0,则获取所述第一应用的当前应用实例数、单个应用实例的期望单位时间请求数,并根据所述实际单位时间请求数、当前应用实例数和所述期望单位时间请求数,确定所述目标应用实例数。
在一种可能的实施方式中,所述确定模块具体用于:
根据所述实际单位时间请求数和所述当前应用实例数,确定当前单位时间平均请求数;
根据所述当前单位时间平均请求数、所述期望单位时间请求数和所述当前应用实例数,确定所述目标应用实例数。
在一种可能的实施方式中,所述第二获取模块具体用于:
通过数据采集器在所述第二应用对应的内存中获取所述第二应用对至少一个应用进行调用的至少一个调用数据,所述至少一个调用数据为所述代理程序采集得到的;
根据所述第一应用的标识,通过指标转换器在所述数据采集器中获取所述第一调用数据。
第三方面,本申请实施例提供一种电子设备,包括:存储器和处理器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,使得所述处理器执行第一方面任一项所述的微服务应用的调用方法。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当所述计算机执行指令被处理器执行时用于实现第一方面任一项所述的微服务应用的调用方法。
第五方面,本申请实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面任一项所示的微服务应用的调用方法。
本申请实施例提供一种微服务应用的调用方法、装置及设备,服务器可以获取第二应用对第一应用的调用请求,若不存在第一应用的应用实例,则可以通过第二应用对应的代理程序请求创建第一应用的应用实例,进而通过应用实例对调用请求进行处理。由于服务器获取调用请求之后,可以确定是否存在第一应用的应用实例。若不存在第一应用的应用实例,则可以立即创建第一应用的应用实例,并且可以是通过代理程序创建第一应用的应用实例,无需修改微服务应用平台的程序代码,实现了主动实时地将第一应用的应用实例从零扩容为多个,提高了微服务应用的调用可靠性。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请示例性实施例提供的一种应用场景的示意图;
图2为本申请示例性实施例提供的一种微服务应用的调用方法的流程示意图;
图3为本申请示例性实施例提供的另一种微服务应用的调用方法的流程示意图;
图4为本申请示例性实施例提供的一种微服务应用的调用方法的过程示意图;
图5为本申请示例性实施例提供的又一种微服务应用的调用方法的流程示意图;
图6A为本申请示例性实施例提供的另一种微服务应用的调用方法的过程示意图;
图6B为本申请示例性实施例提供的又一种微服务应用的调用方法的过程示意图;
图7为本申请示例性实施例提供的一种微服务应用的调用装置的结构示意图;
图8为本申请示例性实施例提供的另一种微服务应用的调用装置的结构示意图;
图9为本申请示例性实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为本申请示例性实施例提供的一种应用场景的示意图。请参见图1,包括客户端和微服务应用平台。客户端中可以设置有应用程序,微服务应用平台中包括多个微服务应用。客户端可以通过应用程序调用微服务应用平台中的微服务应用进行任务处理。在微服务应用平台中的多个微服务应用之间可以进行互相调用。例如,微服务应用平台中可以包括微服务应用1、微服务应用2、微服务应用3、……、微服务应用k。其中,微服务应用1可以调用微服务应用2和微服务应用3,微服务应用2可以调用微服务应用3和微服务应用k等。
应用程序可以调用微服务应用平台中的微服务应用。例如,若应用程序为支付系统,微服务应用1可以为支付服务,微服务应用2可以为鉴权服务,微服务应用3可以为余额服务,则支付软件可以调用支付服务,支付服务可以调用鉴权服务和余额服务。
在相关技术中,微服务应用可能存在多个应用实例,也可能不存在应用实例。在实际应用过程中,在第一微服务应用调用第二微服务应用时,若第二微服务应用不存在应用实例,则微服务应用平台会进行报错,并结束第一微服务应用对第二微服务应用的调用过程,导致微服务应用的调用可靠性较低。
在本申请实施例中,服务器可以获取第二应用对第一应用的调用请求,并且可以确定是否存在第一应用的应用实例。若不存在,则可以通过第二应用对应的代理程序请求创建第一应用的应用实例,并通过应用实例对调用请求进行处理。由于获取到调用请求之后,若不存在第一应用的应用实例,则可以立即创建第一应用的应用实例,提高了微服务应用的调用可靠性。
下面,通过具体实施例对本申请所示的技术方案进行详细说明。需要说明的是,下面几个实施例可以单独存在,也可以相互结合,对于相同或相似的内容,在不同的实施例中不再重复说明。
图2为本申请示例性实施例提供的一种微服务应用的调用方法的流程示意图。请参见图2,该方法可以包括:
S201、获取第二应用对第一应用的调用请求。
本申请实施例的执行主体可以为服务器,也可以为设置在服务器中的微服务应用的调用装置。微服务应用的调用装置可以通过软件实现,也可以通过软件和硬件的结合实现。微服务应用的调用装置可以为服务器中的处理器。为了便于理解,在下文中,以执行主体为服务器为例进行说明。
服务器中可以设置有微服务应用平台,微服务应用平台中可以包括多个微服务应用。
第一应用和第二应用可以为微服务应用。第一应用和第二应用之间可以具有调用关系。例如,若第一应用可以为鉴权服务,第二应用可以为支付服务,则第二应用可以调用第一应用。
可选地,服务器可以获取第二应用对第一应用的调用请求。
例如,若第二应用为支付服务,第一应用为鉴权服务,若第二应用需要对第一应用进行调用,则服务器可以获取第二应用对第一应用的调用请求。
S202、若不存在第一应用的应用实例,通过第二应用对应的代理程序请求创建第一应用的应用实例。
每个微服务应用可以具有对应的应用列表。应用列表中可以包括多个应用实例的信息。例如,第一应用可以具有对应的应用列表1。应用列表1可以包括2个应用实例的信息。其中,应用实例1使用的端口可以为端口1、互联网协议(Internet Protocol,IP)地址可以为IP地址1;应用实例2使用的端口可以为端口2、IP地址可以为IP地址2。
可选地,服务器获取第二应用对第一应用的调用请求之后,可以确定第一应用的应用列表是否为空,具体可以包括如下2种情况:
情况1:第一应用的应用列表不为空。
在该种情况下,第一应用的应用列表中可以包括至少一个应用实例的信息,即存在第一应用的至少一个应用实例,则服务器可以根据第二应用对第一应用的调用请求,确定第一应用的应用实例,并通过该应用实例对调用请求进行处理。
例如,若服务器获取第二应用对第一应用的调用请求为调用请求1,若服务器确定第一应用的应用列表中包括2个应用实例的信息,其中,应用实例1使用的端口可以为端口1、IP地址可以为IP地址1,假设服务器可以根据调用请求1,确定应用实例1的信息,则可以通过应用实例1对调用请求1进行处理。
情况2:第一应用的应用列表为空。
在该种情况下,第一应用的应用列表中不包括应用实例的信息,即不存在第一应用的应用实例,则服务器可以通过第二应用的代理程序请求创建第一应用的应用实例。
例如,若服务器获取第二应用对第一应用的调用请求为调用请求1,若服务器确定第一应用的应用列表中不包括应用实例的信息,则服务器可以根据通过第二应用的代理程序请求创建第一应用的应用实例。
S203、通过应用实例对调用请求进行处理。
可选地,创建第一应用的应用实例之后,则可以通过应用实例对调用请求进行处理。
例如,若服务器获取第二应用对第一应用的调用请求为调用请求1,若服务器根据通过第二应用的代理程序请求创建了第一应用的应用实例1,则可以通过应用实例1对调用请求1进行处理。
在本申请实施例中,服务器可以获取第二应用对第一应用的调用请求,若不存在第一应用的应用实例,则可以通过第二应用对应的代理程序请求创建第一应用的应用实例,进而通过应用实例对调用请求进行处理。由于服务器获取调用请求之后,可以确定是否存在第一应用的应用实例。若不存在第一应用的应用实例,则可以立即创建第一应用的应用实例,并且可以是通过代理程序创建第一应用的应用实例,无需修改微服务应用平台的程序代码,实现了主动实时地将第一应用的应用实例从零扩容为多个,提高了微服务应用的调用可靠性。
下面,在图2所示实施例的基础上,结合图3,对上述微服务应用的调用方法进行进一步详细说明。
图3为本申请示例性实施例提供的另一种微服务应用的调用方法的流程示意图。请参见图3,该方法可以包括:
S301、获取第二应用对第一应用的调用请求。
需要说明的是,步骤S301的执行过程可以参见步骤S201的执行过程,此处不再进行赘述。
S302、确定第一应用的应用列表是否为空。
可选地,若被调用的微服务应用为第一应用,则服务器可以确定第一应用的应用列表是否为空。若是,则可以执行S303;若否,则可以执行S306。
例如,若服务器获取到第二应用对第一应用的调用请求1,则服务器可以确定第一应用的应用列表中是否为空。若第一应用的应用列表为空,则说明不存在第一应用的应用实例,则可以执行S303;若第一应用的应用列表不为空,则说明存在第一应用的应用实例,则可以执行S306。
S303、将调用请求添加到阻塞队列中。
阻塞队列可以用于缓存多个请求。例如,阻塞队列中可以缓存10个请求。
可选地,服务器可以将调用请求添加到阻塞队列中,以缓存调用请求。
例如,若服务器获取到第二应用对第一应用的5个调用请求,则服务器可以将该5个调用请求添加到阻塞队列中,以缓存该5个调用请求,避免丢弃该5个调用请求。
S304、通过代理程序请求创建第一应用的应用实例。
在一可选实施例中,可以确定配置方式,并按照配置方式,通过代理程序请求创建第一应用的应用实例。
可选地,配置方式可以包括异步方式或者同步方式。
异步方式是指可以通过代理程序将事件发布到消息队列中,激活器可以在消息队列中获取代理程序发布的事件。
同步方式是指可以通过代理程序向激活器发送事件或请求,使得激活器可以直接获取代理程序发布的事件或请求。
在一可选实施例中,按照配置方式,通过代理程序请求创建第一应用的应用实例,可以包括如下2种方式:
方式1:配置方式为异步方式。
在该种方式下,通过代理程序请求创建第一应用的应用实例,包括:通过代理程序生成第一应用对应的无实例事件;通过代理程序发布无实例事件;在激活器获取到无实例事件后,通过激活器请求创建第一应用的应用实例。
无实例事件可以包括第一应用的标识和实例需求数量。例如,若第一应用的标识为标识1,实例需求数量为2,则第一应用对应的无实例事件中可以包括第一应用的标识1和实例需求数量2。
在一可选实施例中,可以通过如下方式,通过代理程序生成第一应用对应的无实例事件:确定在预设时段内获取到的对第一应用的调用请求的第一数量;根据第一数量确定实例需求数量;根据第一应用的标识和实例需求数量,生成无实例事件。
预设时段可以是由工作人员预先设置的时间段。例如,预设时段可以为1s(秒)。
例如,若预设时段为1s,则服务器可以确定在1s内获取到的对第一应用的调用请求的第一数量。假设第一数量为5,则服务器可以根据第一数量5确定实例需求数量为5。若第一应用的标识为标识1,服务器可以通过代理程序,根据第一应用的标识1和实例需求数量5,生成第一应用对应的无实例事件,则该无实例事件中可以包括第一应用的标识1和实例需求数量5。
可选地,通过代理程序生成第一应用对应的无实例事件之后,可以通过代理程序发布该无实例事件。激活器可以获取该无实例事件,并请求创建第一应用的应用实例。
例如,若通过代理程序生成第一应用对应的无实例事件1,则可以通过代理程序发布该无实例事件1。激活器可以获取该无实例事件1。若无实例事件1中包括第一应用的标识1和实例需求数量5,则可以根据第一应用的标识1,创建5个第一应用的应用实例。
方式2:配置方式为同步方式。
在该种方式下,通过代理程序请求创建第一应用的应用实例,包括:确定在预设时段内获取到的对第一应用的调用请求的第一数量;根据第一数量确定实例需求数量;通过代理程序向激活器发送实例创建请求;通过激活器请求创建第一应用的应用实例。
实例创建请求中可以包括第一应用的标识和实例需求数量。例如,若第一应用的标识为标识1,实例需求数量为2,则第一应用对应的实例创建请求中可以包括第一应用的标识1和实例需求数量2。
例如,若预设时段为1s,则服务器可以确定在1s内获取到的对第一应用的调用请求的第一数量。假设第一数量为5,则服务器可以根据第一数量5确定实例需求数量为5。若第一应用的标识为标识1,服务器可以通过代理程序向激活器发送第一应用对应的实例创建请求1,则该实例创建请求1中可以包括第一应用的标识1和实例需求数量5。激活器接收到该实例创建请求1之后,可以根据第一应用的标识1,请求创建5个第一应用的应用实例。可以通过为第一应用配置IP地址和端口号等信息,以实现创建应用实例。
需要说明的是,无论在方式1或者方式2中,创建第一应用的应用实例之后,还可以根据第一应用的标识和/或应用实例的信息在注册中心进行注册;根据应用实例的信息,更新第一应用的应用列表,并向第二应用发送更新后的第一应用的应用列表。
例如,若通过激活器根据无实例事件或者实例创建请求创建了第一应用的5个应用实例,假设,应用实例1的信息可以包括IP地址1和端口1,应用实例2的信息可以包括IP地址2和端口2;……;应用实例5的信息可以包括IP地址5和端口5。则服务器可以根据第一应用的标识和该5个应用实例的信息,在注册中心进行注册。注册完成之后,可以根据该5个应用实例的信息,更新第一应用的应用列表,即在第一应用的应用列表中添加该5个应用实例的信息,则更新后的第一应用的应用列表中可以包括应用实例1、应用实例2、应用实例3、应用实例4和应用实例5的信息,服务器可以向第二应用发送更新后的应用列表。
S305、在阻塞队列中获取调用请求。
可选地,创建完成第一应用的应用实例之后,可以在阻塞队列中获取调用请求。
例如,服务器可以在阻塞队列中获取第二应用对第一应用的5个调用请求,该5个调用请求可以分别为调用请求1、调用请求2、调用请求3、调用请求4和调用请求5。
S306、通过应用实例对调用请求进行处理。
例如,若存在5个第一应用的应用实例,分别为应用实例1、应用实例2、应用实例3、应用实例4和应用实例5,若获取到第二应用对第一应用的5个调用请求,分别为调用请求1、调用请求2、调用请求3、调用请求4和调用请求5,则可以通过应用实例1对调用请求1进行处理,通过应用实例2对调用请求2进行处理,通过应用实例3对调用请求3进行处理,通过应用实例4对调用请求4进行处理,通过应用实例5对调用请求5进行处理。
在本申请实施例中,服务器可以获取第二应用对第一应用的调用请求,并确定第一应用的应用列表是否为空。若第一应用的应用列表为空,则可以将调用请求添加到阻塞队列中,并通过代理程序请求创建第一应用的应用实例。创建成功之后,可以在阻塞队列中获取调用请求,并通过应用实例对调用请求进行处理;若第一应用的应用列表不为空,则可以直接通过应用实例对调用请求进行处理。由于服务器获取调用请求之后,可以确定是否存在第一应用的应用实例。若不存在第一应用的应用实例,则可以立即创建第一应用的应用实例,并且可以是通过代理程序创建第一应用的应用实例,无需修改微服务应用平台的程序代码,实现了主动实时地将第一应用的应用实例从零扩容为多个,提高了微服务应用的调用可靠性。
下面,在上述任一实施例的基础上,结合图4,通过具体示例,对上述微服务应用的调用方法的过程进行进一步详细说明。
图4为本申请示例性实施例提供的一种微服务应用的调用方法的过程示意图。请参见图4,包括步骤①②③④⑤⑥⑦⑧。
服务器中可以部署有微服务应用平台,微服务应用平台中可以包括第一应用、第二应用、激活器、注册中心和阻塞队列等。
在步骤①中,服务器可以获取第二应用对第一应用的调用请求。在步骤②中,服务器可以获取第一应用的应用列表,并确定第一应用的应用列表是否为空。若第一应用的应用列表不为空,则可以直接通过应用实例对调用请求进行处理;若第一应用的应用列表为空,则说明不存在第一应用的应用实例,则服务器可以执行步骤③,即可以将调用请求添加到阻塞队列中,以缓存调用请求。
在步骤④中,服务器可以按照异步方式或者同步方式,通过激活器创建第一应用的应用实例,即服务器可以按照异步方式,通过代理程序生成第一应用对应的无实例事件,并通过代理程序发布无实例事件。无实例事件可以包括第一应用的标识和实例需求数量。激活器可以间接获取到代理程序发布的无实例事件;或者,服务器可以按照同步方式,确定在预设时段内获取到的对第一应用的调用请求的第一数量,并根据第一数量确定实例需求数量,进而通过代理程序向激活器发送实例创建请求,以使激活器获取实例创建请求。实例创建请求中可以包括第一应用的标识和实例需求数量。
在步骤⑤中,激活器可以获取到代理程序发布的无实例事件、或者实例创建请求,根据实例需求数量,创建第一应用的应用实例。例如,若实例需求数量为2,则可以通过激活器创建第一应用的应用实例1和应用实例2。其中,应用实例1的信息可以包括IP地址1和端口1,应用实例2的信息可以包括IP地址2和端口2。
在步骤⑥中,可以根据第一应用的标识和应用实例的信息,在注册中心进行注册。注册完成之后,可以根据应用实例的信息,更新第一应用的应用列表,即步骤⑦。更新后,则第一应用的应用列表中可以包括应用实例的信息。例如,第一应用的应用列表中可以包括应用实例1的信息和应用实例2的信息。
由于更新后的应用列表中包括多个应用实例的信息,则在步骤⑧中,服务器可以在阻塞队列中获取调用请求,并在第一应用的应用列表中确定应用实例的信息,进而可以通过应用实例对调用请求进行处理。
在本申请实施例中,服务器可以获取第二应用对第一应用的调用请求,并确定第一应用的应用列表是否为空。若第一应用的应用列表为空,则可以将调用请求添加到阻塞队列中,并通过代理程序请求创建第一应用的应用实例。创建成功之后,可以根据第一应用的标识和应用实例的信息,在注册中心进行注册;并且可以根据应用实例的信息,更新第一应用的应用列表。服务器可以在阻塞队列中获取调用请求,并通过应用实例对调用请求进行处理;若第一应用的应用列表不为空,则可以直接通过应用实例对调用请求进行处理。由于服务器获取调用请求之后,可以确定是否存在第一应用的应用实例。若不存在第一应用的应用实例,则可以立即创建第一应用的应用实例,并且可以是通过代理程序创建第一应用的应用实例,无需修改微服务应用平台的程序代码,实现了主动实时地将第一应用的应用实例从零扩容为多个,提高了微服务应用的调用可靠性。
在上述任一实施例中,主要介绍了在第一应用的应用实例为0时,创建第一应用的应用实例的情况。下面,结合图5,对将第一应用的应用实例从m个更新为n个的情况进行说明,其中,m为大于或等于1的整数,n为大于或等于0的整数。
图5为本申请示例性实施例提供的又一种微服务应用的调用方法的流程示意图。请参见图5,方法可以包括:
S501、获取第二应用对第一应用的调用请求。
需要说明的是,步骤S501的执行过程可以参见步骤S201的执行过程,此处不再进行赘述。
S502、获取代理程序采集得到的第二应用对第一应用的第一调用数据。
在一可选实施例中,可以通过如下方式,获取代理程序采集得到的第二应用对第一应用的第一调用数据:通过数据采集器在第二应用对应的内存中获取第二应用对至少一个应用进行调用的至少一个调用数据;根据第一应用的标识,通过指标转换器在数据采集器中获取第一调用数据。
可选地,服务器中可以包括数据采集器和指标转换器。
数据采集器可以用于定期获取第二应用对至少一个应用的调用数据。
指标转换器可以用于对数据采集器中的数据进行过滤和查询。
至少一个调用数据可以是第二应用对应的代理程序采集得到,并保存在第二应用对应的内存中的数据。至少一个调用数据中可以包括第二应用对第一应用的第一调用数据。
例如,服务器可以通过数据采集器在第二应用对应的内存中,获取第二应用对至少一个应用的至少一个调用数据。至少一个调用数据中可以包括第二应用对第一应用的第一调用数据。若第一应用的标识为标识1,则可以根据第一应用的标识1,通过指标转换器在数据采集器中获取第二应用对第一应用的第一调用数据。
S503、根据第一调用数据,确定第一应用的目标应用实例数。
可选地,第一调用数据中可以包括第二应用在预设时段内对第一应用的实际单位时间请求数。其中,实际单位时间请求数可以用每秒请求数(Request Per Second,RPS)表示。
例如,若预设时段为1min(分钟),实际单位时间请求数用RPS表示,则第一调用数据中可以包括第二应用在1min内对第一应用的实际单位时间请求数为5。
在一可选实施例中,根据第一调用数据,确定第一应用的目标应用实例数,可以包括如下2种情况:
情况1:实际单位时间请求数为0。
在该种情况下,则可以根据实际单位时间请求数0,确定目标应用实例数为0。
例如,若预设时段为1min,第二应用在1min内对第一应用的实际单位请求数为0,则可以根据该实际单位时间请求数0,确定目标应用实例数为0。
情况2:实际单位时间请求数大于0。
在该种情况下,则可以获取第一应用的当前应用实例数、单个应用实例的期望单位时间请求数,并根据实际单位时间请求数、当前应用实例数和期望单位时间请求数,确定目标应用实例数。
可选地,单个应用实例的期望单位时间请求数可以是由工作人员预设的。期望单位时间请求数可以用RPS表示。例如,期望单位时间请求数可以为10。
可选地,可以通过如下方式,确定目标应用实例数:根据实际单位时间请求数和当前应用实例数,确定当前单位时间平均请求数;根据当前单位时间平均请求数、期望单位时间请求数和当前应用实例数,确定目标应用实例数。
例如,若服务器获取第一应用的当前应用实例数为2,实际单位时间请求数为40,则可以根据实际单位时间请求数40和当前应用实例数2,确定单个应用实例的当前单位时间平均请求数为40/2=20。若单个应用实例的期望单位时间请求数为10,则可以根据当前单位时间平均请求数20、期望单位时间请求数10和当前应用实例数2,确定目标应用实例数为20/10*2=4。
S504、根据目标应用实例数,更新第一应用的应用实例。
例如,若第一应用的当前应用实例数为2,目标应用实例数为0,则可以将第一应用的应用实例从2个缩容至0个;若目标应用实例数为8,则可以将第一应用的应用实例从2个扩容至8个。
S505、通过应用实例对调用请求进行处理。
需要说明的是,步骤S505的执行过程可以参见步骤S203或者步骤S306的执行过程,此处不再进行赘述。
在本申请实施例中,服务器可以获取第二应用对第一应用的调用请求,并获取代理程序采集得到的第二应用对第一应用的第一调用数据。服务器可以根据第一调用数据,确定第一应用的目标应用实例数,并根据目标应用实例数,更新第一应用的应用实例,进而可以通过应用实例对调用请求进行处理。由于服务器可以通过代理程序采集得到第二应用对至少一个应用的至少一个调用数据,并将至少一个调用数据保存在第二应用对应的内存中;可以通过数据采集器定期在第二应用对应的内存中获取至少一个调用数据,并且可以通过指标转换器在数据采集器中获取指定的第一调用数据,无需修改微服务应用平台的程序代码,实现了将第一应用的应用实例从m个更新为n个,提高了微服务应用的调用可靠性。
下面,在图5所示实施例的基础上,通过具体示例,结合图6A,对将第一应用的应用实例从m个更新为n个(n大于0)的情况进行进一步详细说明;结合图6B,对将第一应用的应用实例从m个缩容为0个(n等于0)的情况进行进一步详细说明。
图6A为本申请示例性实施例提供的另一种微服务应用的调用方法的过程示意图。请参见图6A,包括步骤①②③④⑤⑥。
服务器中可以设置有微服务应用平台,微服务应用平台中可以包括第一应用、第二应用、第二应用对应的内存、数据采集器和指标转换器等。
在步骤①中,服务器可以获取第二应用对第一应用的调用请求。第二应用中可以包括代理程序,在步骤②中,可以通过代理程序采集第二应用对至少一个应用的至少一个调用数据,并将至少一个调用数据保存在第二应用对应的内存中。例如,至少一个调用数据中可以包括第二应用对第一应用的第一调用数据、第二应用对第三应用的调用数据。
在步骤③中,服务器可以通过数据采集器定期在第二应用对应的内存中,获取第二应用对至少一个应用的至少一个调用数据。
在步骤④中,服务器可以根据第一应用的标识,通过指标转换器在数据采集器中获取指定的调用数据,即第二应用对第一应用的第一调用数据。
确定第二应用对第一应用的第一调用数据之后,由于第一调用数据中可以包括第二应用在预设时段内对第一应用的实际单位时间请求数,则若实际单位时间请求数大于0,则服务器可以执行步骤⑤,即可以根据第一调用数据,确定第一应用的目标应用实例数,并更新第一应用的应用实例。
具体地,服务器可以获取第一应用的当前应用实例数、单个应用实例的期望单位时间请求数,并根据实际单位时间请求数和当前应用实例数,确定当前单位时间平均请求数;根据当前单位时间平均请求数、期望单位时间请求数和当前应用实例数,确定目标应用实例数。服务器可以根据目标应用实例数,更新第一应用的应用实例。
例如,若服务器获取第一应用的当前应用实例数为2,若实际单位时间请求数为10,则可以根据实际单位时间请求数10和当前应用实例数2,确定当前单位时间平均请求数为10/2=5。若单个应用实例的期望单位时间请求数为10,则可以根据当前单位时间平均请求数5、期望单位时间请求数10和当前应用实例数2,确定目标应用实例数为5/10*2=1。由于第一应用的当前应用实例数为2,则说明已经存在2个应用实例,分别为应用实例1和应用实例2,而目标应用实例数为1,则可以删除第一应用的应用实例2,保留第一应用的应用实例1,以将第一应用的应用实例从2个更新为1个。
在步骤⑥中,可以通过应用实例对调用请求进行处理。调用请求的数量可以为至少一个。
例如,若存在第一应用的应用实例1,若存在3个调用请求,分别为调用请求1、调用请求2和调用请求3,则服务器可以通过应用实例1分别对调用请求1、调用请求2、调用请求3进行处理。
在本申请实施例中,服务器可以获取第二应用对第一应用的调用请求,通过代理程序采集第二应用对至少一个应用的至少一个调用数据,并将至少一个调用数据保存在第二应用对应的内存中。服务器可以通过数据采集器定期获取至少一个调用数据,并且可以根据第一应用的标识,通过指标转换器在数据采集器中获取第二应用对第一应用的第一调用数据。服务器可以根据第一调用数据,确定第一应用的目标应用实例数,并根据目标应用实例数,更新第一应用的应用实例,进而可以通过应用实例对调用请求进行处理。由于服务器可以通过代理程序采集得到第二应用对至少一个应用的至少一个调用数据,并将至少一个调用数据保存在第二应用对应的内存中;可以通过数据采集器定期在第二应用对应的内存中获取至少一个调用数据,并且可以通过指标转换器在数据采集器中获取指定的第一调用数据,无需修改微服务应用平台的程序代码,实现了将第一应用的应用实例从m个更新为n个,提高了微服务应用的调用可靠性。
图6B为本申请示例性实施例提供的又一种微服务应用的调用方法的过程示意图。请参见图6B,包括步骤①②③④。
服务器中可以设置有微服务应用平台,微服务应用平台中可以包括第一应用、第二应用、第二应用对应的内存、数据采集器和指标转换器等。
第二应用中可以包括代理程序。在步骤①中,服务器可以通过代理程序采集第二应用对至少一个应用的至少一个调用数据,并将至少一个调用数据保存在第二应用对应的内存中。例如,至少一个调用数据中可以包括第二应用对第一应用的第一调用数据、第二应用对第三应用的调用数据。
在步骤②中,服务器可以通过数据采集器定期在第二应用对应的内存中,获取第二应用对至少一个应用的至少一个调用数据。
在步骤③中,服务器可以根据第一应用的标识,通过指标转换器在数据采集器中获取指定的调用数据,即第二应用对第一应用的第一调用数据。
确定第二应用对第一应用的第一调用数据之后,由于第一调用数据中可以包括第二应用在预设时段内对第一应用的实际单位时间请求数,则若实际单位时间请求数等于0,则服务器可以执行步骤④,即可以根据第一调用数据中实际单位时间请求数为0,确定第一应用的目标应用实例数为0,并更新第一应用的应用实例。例如,若第一应用的当前应用实例数为2,则说明已经存在2个应用实例,分别为应用实例1和应用实例2,而目标应用实例数为0,则可以删除第一应用的应用实例1和应用实例2,以将第一应用的应用实例从2个缩容至0个。
在本申请实施例中,服务器可以通过代理程序采集第二应用对至少一个应用的至少一个调用数据,并将至少一个调用数据保存在第二应用对应的内存中。服务器可以通过数据采集器定期获取至少一个调用数据,并且可以根据第一应用的标识,通过指标转换器在数据采集器中获取第二应用对第一应用的第一调用数据。服务器可以根据第一调用数据,确定第一应用的目标应用实例数,并根据目标应用实例数,更新第一应用的应用实例。由于服务器可以通过代理程序采集得到第二应用对至少一个应用的至少一个调用数据,并将至少一个调用数据保存在第二应用对应的内存中;可以通过数据采集器定期在第二应用对应的内存中获取至少一个调用数据,并且可以通过指标转换器在数据采集器中获取指定的第一调用数据,无需修改微服务应用平台的程序代码,实现了将第一应用的应用实例从m个缩容至0个,提高了微服务应用的调用可靠性。
图7为本申请示例性实施例提供的一种微服务应用的调用装置的结构示意图,请参见图7,该微服务应用的调用装置10包括:第一获取模块11、创建模块12和处理模块13,其中,
所述第一获取模块11用于,获取第二应用对第一应用的调用请求,所述第一应用和所述第二应用为微服务应用;
所述创建模块12用于,若不存在所述第一应用的应用实例,通过所述第二应用对应的代理程序请求创建所述第一应用的应用实例;
所述处理模块13用于,通过所述应用实例对所述调用请求进行处理。
本申请实施例提供的微服务应用的调用装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
在一种可能的实施方式中,所述创建模块12具体用于:
确定配置方式,所述配置方式为异步方式或者同步方式;
按照所述配置方式,通过所述代理程序请求创建所述第一应用的应用实例。
在一种可能的实施方式中,所述创建模块12具体用于:
通过所述代理程序生成所述第一应用对应的无实例事件,所述无实例事件包括所述第一应用的标识和实例需求数量;
通过所述代理程序发布所述无实例事件;
在激活器获取到所述无实例事件后,通过所述激活器请求创建所述第一应用的应用实例。
在一种可能的实施方式中,所述创建模块12具体用于:
确定在预设时段内获取到的对所述第一应用的调用请求的第一数量;
根据所述第一数量确定所述实例需求数量;
根据所述第一应用的标识和所述实例需求数量,生成所述无实例事件。
在一种可能的实施方式中,所述创建模块12具体用于:
确定在预设时段内获取到的对所述第一应用的调用请求的第一数量;
根据所述第一数量确定所述实例需求数量;
通过所述代理程序向激活器发送实例创建请求,所述实例创建请求包括所述第一应用的标识和所述实例需求数量;
通过所述激活器请求创建所述第一应用的应用实例。
在一种可能的实施方式中,所述处理模块13具体用于:
在确定所述应用实例创建成功之后,在所述阻塞队列中获取所述调用请求;
通过所述应用实例对所述调用请求进行处理。
本申请实施例提供的微服务应用的调用装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
图8为本申请示例性实施例提供的另一种微服务应用的调用装置的结构示意图,在图7所示实施例的基础上,请参见图8,微服务应用的调用装置10还可以包括:添加模块14、第二获取模块15、确定模块16和更新模块17,其中,
所述添加模块14用于,将所述调用请求添加到阻塞队列中;
所述第二获取模块15用于,获取所述代理程序采集得到的所述第二应用对所述第一应用的第一调用数据;
所述确定模块16用于,根据所述第一调用数据,确定所述第一应用的目标应用实例数;
所述更新模块17用于,根据所述目标应用实例数,更新所述第一应用的应用实例。
本申请实施例提供的微服务应用的调用装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
在一种可能的实施方式中,所述确定模块16具体用于:
若所述实际单位时间请求数为0,则确定所述目标应用实例数为0;
若所述实际单位时间请求数大于0,则获取所述第一应用的当前应用实例数、单个应用实例的期望单位时间请求数,并根据所述实际单位时间请求数、当前应用实例数和所述期望单位时间请求数,确定所述目标应用实例数。
在一种可能的实施方式中,所述确定模块16具体用于:
根据所述实际单位时间请求数和所述当前应用实例数,确定当前单位时间平均请求数;
根据所述当前单位时间平均请求数、所述期望单位时间请求数和所述当前应用实例数,确定所述目标应用实例数。
在一种可能的实施方式中,所述第二获取模块15具体用于:
通过数据采集器在所述第二应用对应的内存中获取所述第二应用对至少一个应用进行调用的至少一个调用数据,所述至少一个调用数据为所述代理程序采集得到的;
根据所述第一应用的标识,通过指标转换器在所述数据采集器中获取所述第一调用数据。
本申请实施例提供的微服务应用的调用装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
图7-图8所示的微服务应用的调用装置可以为设置在服务器中的装置。
本申请示例性实施例提供一种电子设备的结构示意图,请参见图9,该电子设备20可以包括处理器21和存储器22。示例性地,处理器21、存储器22,各部分之间通过总线23相互连接。
所述存储器22存储计算机执行指令;
所述处理器21执行所述存储器22存储的计算机执行指令,使得所述处理器21执行如上述方法实施例所示的微服务应用的调用方法。
图9所示的电子设备可以为上述任一实施例中所述的服务器。
相应地,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当所述计算机执行指令被处理器执行时用于实现上述方法实施例所述的微服务应用的调用方法。
相应地,本申请实施例还可提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时,可实现上述方法实施例所示的微服务应用的调用方法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (14)
1.一种微服务应用的调用方法,其特征在于,包括:
获取第二应用对第一应用的调用请求,所述第一应用和所述第二应用为微服务应用;
若不存在所述第一应用的应用实例,通过所述第二应用对应的代理程序请求创建所述第一应用的应用实例;
通过所述应用实例对所述调用请求进行处理。
2.根据权利要求1所述的方法,其特征在于,通过代理程序请求创建所述第一应用的应用实例,包括:
确定配置方式,所述配置方式为异步方式或者同步方式;
按照所述配置方式,通过所述代理程序请求创建所述第一应用的应用实例。
3.根据权利要求2所述的方法,其特征在于,所述配置方式为所述异步方式;按照所述配置方式,通过所述代理程序请求创建所述第一应用的应用实例,包括:
通过所述代理程序生成所述第一应用对应的无实例事件,所述无实例事件包括所述第一应用的标识和实例需求数量;
通过所述代理程序发布所述无实例事件;
在激活器获取到所述无实例事件后,通过所述激活器请求创建所述第一应用的应用实例。
4.根据权利要求3所述的方法,其特征在于,通过所述代理程序生成所述第一应用对应的无实例事件,包括:
确定在预设时段内获取到的对所述第一应用的调用请求的第一数量;
根据所述第一数量确定所述实例需求数量;
根据所述第一应用的标识和所述实例需求数量,生成所述无实例事件。
5.根据权利要求2所述的方法,其特征在于,所述配置方式为所述同步方式;按照所述配置方式,通过所述代理程序请求创建所述第一应用的应用实例,包括:
确定在预设时段内获取到的对所述第一应用的调用请求的第一数量;
根据所述第一数量确定所述实例需求数量;
通过所述代理程序向激活器发送实例创建请求,所述实例创建请求包括所述第一应用的标识和所述实例需求数量;
通过所述激活器请求创建所述第一应用的应用实例。
6.根据权利要求1-5任一项所述的方法,其特征在于,通过代理程序请求创建所述第一应用的应用实例之前,还包括:
将所述调用请求添加到阻塞队列中;
通过所述应用实例对所述调用请求进行处理,包括:
在确定所述应用实例创建成功之后,在所述阻塞队列中获取所述调用请求;
通过所述应用实例对所述调用请求进行处理。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述方法还包括:
获取所述代理程序采集得到的所述第二应用对所述第一应用的第一调用数据;
根据所述第一调用数据,确定所述第一应用的目标应用实例数;
根据所述目标应用实例数,更新所述第一应用的应用实例。
8.根据权利要求7所述的方法,其特征在于,所述第一调用数据包括所述第二应用在预设时段内对所述第一应用的实际单位时间请求数;根据所述第一调用数据,确定所述第一应用的目标应用实例数,包括:
若所述实际单位时间请求数为0,则确定所述目标应用实例数为0;
若所述实际单位时间请求数大于0,则获取所述第一应用的当前应用实例数、单个应用实例的期望单位时间请求数,并根据所述实际单位时间请求数、当前应用实例数和所述期望单位时间请求数,确定所述目标应用实例数。
9.根据权利要求8所述的方法,其特征在于,根据所述实际单位时间请求数、当前应用实例数和所述期望单位时间请求数,确定所述目标应用实例数,包括:
根据所述实际单位时间请求数和所述当前应用实例数,确定当前单位时间平均请求数;
根据所述当前单位时间平均请求数、所述期望单位时间请求数和所述当前应用实例数,确定所述目标应用实例数。
10.根据权利要求7-9任一项所述的方法,其特征在于,获取所述代理程序采集得到的所述第二应用对所述第一应用的第一调用数据,包括:
通过数据采集器在所述第二应用对应的内存中获取所述第二应用对至少一个应用进行调用的至少一个调用数据,所述至少一个调用数据为所述代理程序采集得到的;
根据所述第一应用的标识,通过指标转换器在所述数据采集器中获取所述第一调用数据。
11.一种微服务应用的调用装置,其特征在于,包括:第一获取模块、创建模块和处理模块,其中,
所述第一获取模块用于,获取第二应用对第一应用的调用请求,所述第一应用和所述第二应用为微服务应用;
所述创建模块用于,若不存在所述第一应用的应用实例,通过所述第二应用对应的代理程序请求创建所述第一应用的应用实例;
所述处理模块用于,通过所述应用实例对所述调用请求进行处理。
12.一种电子设备,其特征在于,包括:存储器和处理器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,使得所述处理器执行如权利要求1至10任一项所述的微服务应用的调用方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当所述计算机执行指令被处理器执行时用于实现权利要求1至10任一项所述的微服务应用的调用方法。
14.一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现权利要求1至10任一项所述的微服务应用的调用方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211735561.7A CN115934292A (zh) | 2022-12-30 | 2022-12-30 | 微服务应用的调用方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211735561.7A CN115934292A (zh) | 2022-12-30 | 2022-12-30 | 微服务应用的调用方法、装置及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115934292A true CN115934292A (zh) | 2023-04-07 |
Family
ID=86552441
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211735561.7A Pending CN115934292A (zh) | 2022-12-30 | 2022-12-30 | 微服务应用的调用方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115934292A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116662267A (zh) * | 2023-08-02 | 2023-08-29 | 中国电子投资控股有限公司 | 一种基于云原生的分布式应用快照系统和快照创建方法 |
-
2022
- 2022-12-30 CN CN202211735561.7A patent/CN115934292A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116662267A (zh) * | 2023-08-02 | 2023-08-29 | 中国电子投资控股有限公司 | 一种基于云原生的分布式应用快照系统和快照创建方法 |
CN116662267B (zh) * | 2023-08-02 | 2024-04-05 | 中国电子投资控股有限公司 | 一种基于云原生的分布式应用快照系统和快照创建方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110968586A (zh) | 分布式事务处理方法及装置 | |
CN107402956B (zh) | 大任务的数据处理方法、设备和计算机可读存储介质 | |
CN108282507B (zh) | 在CaaS环境中进行应用发布的方法、装置以及电子设备 | |
CN107276970B (zh) | 一种解绑、绑定方法和装置 | |
CN110062041B (zh) | 一种基于区块链的iot设备变更的方法及装置 | |
CN109104368B (zh) | 一种请求连接方法、装置、服务器及计算机可读存储介质 | |
CN115934292A (zh) | 微服务应用的调用方法、装置及设备 | |
CN111258742B (zh) | 一种数据同步的方法、系统、计算设备及存储介质 | |
CN114860473A (zh) | 一种消息处理方法、处理器和存储介质 | |
CN110764930B (zh) | 基于消息模式的请求或应答处理方法及装置 | |
CN108989072B (zh) | 一种部署、管理及调用组件的方法及装置 | |
CN109684051B (zh) | 一种混合式大数据任务异步提交的方法和系统 | |
CN112363980A (zh) | 一种分布式系统的数据处理方法及装置 | |
CN110968406A (zh) | 处理任务的方法、装置、存储介质和处理器 | |
CN109120692B (zh) | 用于处理请求的方法和装置 | |
CN110413427B (zh) | 订阅数据拉取方法、装置、设备及存储介质 | |
CN113469814A (zh) | 交易时长数据的确定方法及装置 | |
CN112860292A (zh) | 一种基于应用的配置管理方法及装置 | |
CN112416980A (zh) | 数据业务处理方法、装置及设备 | |
CN108920277B (zh) | 业务执行系统、方法及装置、业务隔离系统 | |
CN112637201A (zh) | 一种web服务端的请求处理方法、装置、设备及系统 | |
CN113873052B (zh) | Kubernetes集群的域名解析方法、装置及设备 | |
CN112187570A (zh) | 一种风险侦测方法、装置、电子设备和可读存储介质 | |
CN111988356A (zh) | 一种文件传输方法、设备及介质 | |
CN111435320A (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 |