分布式服务调用方法、装置、可读存储介质及终端设备与流程

文档序号:33324994发布日期:2023-03-03 22:41阅读:27来源:国知局
分布式服务调用方法、装置、可读存储介质及终端设备与流程

1.本技术属于插件管理技术领域,尤其涉及一种分布式服务调用方法、装置、计算机可读存储介质及终端设备。


背景技术:

2.在应用程序的开发过程中,为了便于进行功能拓展,可以采用支持插件式开发的应用框架,将特定的服务以插件的形式进行封装,在需要使用该服务时,仅需调用相应的插件即可。
3.在现有技术中,各个服务之间独立进程,插件之间往往使用远程过程调用(remote procedure call,rpc)的方式进行服务调用,会产生较多的传输控制协议(transmission control protocol,tcp)开销,导致服务调用的效率较低。


技术实现要素:

4.有鉴于此,本技术实施例提供了一种分布式服务调用方法、装置、计算机可读存储介质及终端设备,以解决现有的服务调用方法效率较低的问题。
5.本技术实施例的第一方面提供了一种分布式服务调用方法,可以包括:
6.确定第一插件待调用的目标服务;其中,所述第一插件为预设的分布式服务系统中的任意一个插件;
7.获取与所述目标服务对应的服务地址列表;其中,所述服务地址列表中包括各个第二插件的服务地址,所述第二插件为在所述分布式服务系统中提供所述目标服务的插件;
8.基于预设的负载均衡策略从所述服务地址列表中选取最优服务地址;其中,所述负载均衡策略为在进程内和进程外进行负载均衡的策略;
9.若与所述最优服务地址对应的第二插件处于进程内,则使用内存对象调用的方式调用与所述最优服务地址对应的第二插件为所述第一插件提供所述目标服务。
10.在第一方面的一种具体实现方式中,所述根据预设的负载均衡策略从所述服务地址列表中选取最优服务地址,可以包括:
11.确定所述服务地址列表中的各个服务地址的服务权重;
12.基于所述负载均衡策略,根据所述服务权重从所述服务地址列表中选取所述最优服务地址。
13.在第一方面的一种具体实现方式中,所述确定所述服务地址列表中的各个服务地址的服务权重,可以包括:
14.确定所述服务地址列表中的各个服务地址的静态权重;
15.确定所述服务地址列表中的各个服务地址的动态权重;
16.根据所述静态权重和所述动态权重确定所述服务地址列表中的各个服务地址的服务权重。
17.在第一方面的一种具体实现方式中,所述确定所述服务地址列表中的各个服务地址的静态权重,可以包括:
18.获取所述服务地址列表中的各个服务地址对应的硬件资源数;
19.根据所述硬件资源数确定所述服务地址列表中的各个服务地址的静态权重;其中,所述静态权重与所述硬件资源数正相关。
20.在第一方面的一种具体实现方式中,所述确定所述服务地址列表中的各个服务地址的动态权重,可以包括:
21.获取所述服务地址列表中的各个服务地址对应的服务延迟时间和服务成功率;
22.根据所述服务延迟时间和所述服务成功率确定所述服务地址列表中的各个服务地址的动态权重;其中,所述动态权重与所述服务延迟时间负相关,所述动态权重与所述服务成功率正相关。
23.在第一方面的一种具体实现方式中,在基于预设的负载均衡策略从所述服务地址列表中选取最优服务地址之后,还可以包括:
24.获取所述最优服务地址对应的第一端口;
25.获取本机地址和所述本机地址对应的第二端口;
26.根据所述最优服务地址、所述本机地址、所述第一端口和所述第二端口判断与所述最优服务地址对应的第二插件是否处于进程内。
27.在第一方面的一种具体实现方式中,所述根据所述最优服务地址、所述本机地址、所述第一端口和所述第二端口判断与所述最优服务地址对应的第二插件是否处于进程内,包括:
28.若所述最优服务地址和所述本机地址一致,且所述第一端口和所述第二端口一致,则判定与所述最优服务地址对应的第二插件处于进程内;
29.若所述最优服务地址和所述本机地址不一致,或所述第一端口和所述第二端口不一致,则判定与所述最优服务地址对应的第二插件处于进程外。
30.本技术实施例的第二方面提供了一种分布式服务调用装置,可以包括:
31.目标服务确定模块,用于确定第一插件待调用的目标服务;其中,所述第一插件为预设的分布式服务系统中的任意一个插件;
32.服务地址列表获取模块,用于获取与所述目标服务对应的服务地址列表;其中,所述服务地址列表中包括各个第二插件的服务地址,所述第二插件为在所述分布式服务系统中提供所述目标服务的插件;
33.服务地址选取模块,用于基于预设的负载均衡策略从所述服务地址列表中选取最优服务地址;其中,所述负载均衡策略为在进程内和进程外进行负载均衡的策略;
34.进程内服务调用模块,用于若与所述最优服务地址对应的第二插件处于进程内,则使用内存对象调用的方式调用与所述最优服务地址对应的第二插件为所述第一插件提供所述目标服务。
35.在第二方面的一种具体实现方式中,所述服务地址选取模块可以包括:
36.服务权重确定子模块,用于确定所述服务地址列表中的各个服务地址的服务权重;
37.负载均衡子模块,用于基于所述负载均衡策略,根据所述服务权重从所述服务地
址列表中选取所述最优服务地址。
38.在第二方面的一种具体实现方式中,所述服务权重确定子模块可以包括:
39.静态权重确定单元,用于确定所述服务地址列表中的各个服务地址的静态权重;
40.动态权重确定单元,用于确定所述服务地址列表中的各个服务地址的动态权重;
41.服务权重确定单元,用于根据所述静态权重和所述动态权重确定所述服务地址列表中的各个服务地址的服务权重。
42.在第二方面的一种具体实现方式中,所述静态权重确定单元可以具体用于:获取所述服务地址列表中的各个服务地址对应的硬件资源数;根据所述硬件资源数确定所述服务地址列表中的各个服务地址的静态权重;其中,所述静态权重与所述硬件资源数正相关。
43.在第二方面的一种具体实现方式中,所述动态权重确定单元可以具体用于:获取所述服务地址列表中的各个服务地址对应的服务延迟时间和服务成功率;根据所述服务延迟时间和所述服务成功率确定所述服务地址列表中的各个服务地址的动态权重;其中,所述动态权重与所述服务延迟时间负相关,所述动态权重与所述服务成功率正相关。
44.在第二方面的一种具体实现方式中,所述分布式服务调用装置还可以包括:
45.信息获取模块,用于获取所述最优服务地址对应的第一端口;获取本机地址和所述本机地址对应的第二端口;
46.进程判断模块,用于根据所述最优服务地址、所述本机地址、所述第一端口和所述第二端口判断与所述最优服务地址对应的第二插件是否处于进程内。
47.在第二方面的一种具体实现方式中,所述进程判断模块可以具体用于:若所述最优服务地址和所述本机地址一致,且所述第一端口和所述第二端口一致,则判定与所述最优服务地址对应的第二插件处于进程内;若所述最优服务地址和所述本机地址不一致,或所述第一端口和所述第二端口不一致,则判定与所述最优服务地址对应的第二插件处于进程外。
48.本技术实施例的第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种分布式服务调用方法的步骤。
49.本技术实施例的第四方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一种分布式服务调用方法的步骤。
50.本技术实施例的第五方面提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述任一种分布式服务调用方法的步骤。
51.本技术实施例与现有技术相比存在的有益效果是:本技术实施例确定第一插件待调用的目标服务;其中,所述第一插件为预设的分布式服务系统中的任意一个插件;获取与所述目标服务对应的服务地址列表;其中,所述服务地址列表中包括各个第二插件的服务地址,所述第二插件为在所述分布式服务系统中提供所述目标服务的插件;基于预设的负载均衡策略从所述服务地址列表中选取最优服务地址;其中,所述负载均衡策略为在进程内和进程外进行负载均衡的策略;若与所述最优服务地址对应的第二插件处于进程内,则使用内存对象调用的方式调用与所述最优服务地址对应的第二插件为所述第一插件提供所述目标服务。通过本技术实施例,可以基于负载均衡策略在进程内和进程外提供相同服
务的插件中选取最优的插件,若选取的插件处于进程内,则不再使用rpc的方式进行服务调用,而是使用内存对象调用的方式进行服务调用,从而有效减少了tcp协议开销,提高了服务调用效率。
附图说明
52.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
53.图1为本技术实施例中所采用的支持插件式开发的应用程序框架的示意图;
54.图2为本技术实施例中一种分布式服务调用方法的一个实施例流程图;
55.图3为确定服务地址列表中的各个服务地址的服务权重的示意流程图;
56.图4为在进程内进行插件调用的示意图;
57.图5为在进程外进行插件调用的示意图;
58.图6为跨主机进行插件调用的示意图;
59.图7为本技术实施例中一种分布式服务调用装置的一个实施例结构图;
60.图8为本技术实施例中一种终端设备的示意框图。
具体实施方式
61.为使得本技术的发明目的、特征、优点能够更加的明显和易懂,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本技术一部分实施例,而非全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
62.应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
63.还应当理解,在此本技术说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本技术。如在本技术说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
64.还应当进一步理解,在本技术说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
65.如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
[0066]
另外,在本技术的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0067]
在应用程序的开发过程中,为了便于进行功能拓展,可以采用支持插件式开发的
应用程序框架,将特定的服务以插件的形式进行封装,在需要使用该服务时,仅需调用相应的插件即可。
[0068]
图1所示即为本技术实施例中所采用的支持插件式开发的应用程序框架的示意图。如图所示,应用程序中可以包括宿主和插件等重要组件,其中,宿主为应用程序的主干,用于实现应用程序的核心功能,插件为应用程序的附属,用于实现应用程序的拓展功能。宿主可以引用插件的对象实例,插件之间可以相互调用。
[0069]
宿主可以对插件进行安装、卸载、查询等插件管理操作,在编译期间和运行期间安装插件,并在卸载插件时将插件的资源销毁;宿主可以对第三方服务客户端、数据库客户端等进行创建、销毁、查询等客户端管理操作;宿主还可以进行日志管理、异常处理以及监控等操作。
[0070]
当应用程序启动时,首先可以初始化宿主容器,并将宿主组件加载至宿主容器中;然后可以初始化插件容器,将宿主容器作为父容器,将插件容器作为子容器,并将插件组件加载至插件容器中;在完成插件加载之后,可以将插件注册到宿主的插件管理器(pluginmanager)中,以便宿主对其进行管理。
[0071]
插件以服务作为单位,每个插件提供一个对应的服务,在加载插件时,可以由宿主向注册中心发起服务注册,将插件对应的服务注册到注册中心,其中,服务的地址即为宿主的地址。
[0072]
在本技术实施例中提供了一种分布式服务系统,在该分布式服务系统中可以部署多个应用程序,同一应用程序中的各个插件处于同一进程(process)内。在进行服务调用时会存在两种情况,一种情况是被调用的插件处于进程内,另一种情况是被调用的插件处于进程外。
[0073]
在本技术实施例中,宿主可以基于负载均衡策略在进程内和进程外提供相同服务的插件中选取最优的插件,若选取的插件处于进程内,则不再使用rpc的方式进行服务调用,而是使用内存对象调用的方式进行服务调用,从而可以有效减少tcp协议开销,提高服务调用效率。
[0074]
请参阅图2,本技术实施例中一种分布式服务调用方法的一个实施例可以包括:
[0075]
步骤s201、确定第一插件待调用的目标服务。
[0076]
其中,第一插件为预设的分布式服务系统中的任意一个插件。在第一插件的使用过程中,若需要用到本插件之外的其它服务(将其记为目标服务),则可以向第一插件的宿主发送服务调用请求,在服务调用请求中可以包括待调用的目标服务的服务名。宿主在接收到服务调用请求之后,可以根据服务调用请求中的服务名确定第一插件待调用的目标服务。
[0077]
步骤s202、获取与目标服务对应的服务地址列表。
[0078]
由于在加载插件时,宿主会向注册中心发起服务注册,将插件对应的服务注册到注册中心,因此在确定第一插件待调用的目标服务之后,宿主可以从注册中心处获取与目标服务对应的服务地址列表。其中,服务地址列表中可以包括各个第二插件的服务地址,第二插件即为在分布式服务系统中提供目标服务的插件。
[0079]
步骤s203、基于预设的负载均衡策略从服务地址列表中选取最优服务地址。
[0080]
具体地,宿主可以首先确定服务地址列表中的各个服务地址的服务权重,然后基
于负载均衡策略,根据服务权重从服务地址列表中选取最优服务地址。
[0081]
在本技术实施例的一种具体实现方式中,宿主可以通过如图3所示的过程来确定服务地址列表中的各个服务地址的服务权重:
[0082]
步骤s2031、确定服务地址列表中的各个服务地址的静态权重。
[0083]
具体地,宿主可以首先获取服务地址列表中的各个服务地址对应的硬件资源数,然后根据硬件资源数确定服务地址列表中的各个服务地址的静态权重。
[0084]
其中,硬件资源数可以为cpu核心数。容易理解地,静态权重与硬件资源数正相关,即某个服务地址对应的硬件资源数越大,则该服务地址的静态权重也越大,反之,某个服务地址对应的硬件资源数越小,则该服务地址的静态权重也越小。
[0085]
在本技术实施例的一种具体实现方式中,可以直接将服务地址对应的硬件资源数作为该服务地址的静态权重,即:静态权重=硬件资源数。特殊地,若各个服务地址对应的硬件资源数均一致,则静态权重均相同,此时可以将静态权重均赋值为1。
[0086]
步骤s2032、确定服务地址列表中的各个服务地址的动态权重。
[0087]
具体地,宿主可以首先获取服务地址列表中的各个服务地址对应的服务延迟时间和服务成功率,然后根据服务延迟时间和服务成功率确定服务地址列表中的各个服务地址的动态权重。
[0088]
其中,服务成功率可以为服务成功次数与服务请求次数的比值,即:服务成功率=服务成功次数
÷
服务请求次数。服务延迟时间可以为由服务请求发出至收到服务应答的时间间隔,即:服务延迟时间=收到服务应答的时间-服务请求发出的时间。一方面,动态权重与服务延迟时间负相关,即某个服务地址对应的服务延迟时间越小,则该服务地址的动态权重越大,反之,某个服务地址对应的服务延迟时间越大,则该服务地址的动态权重越小;另一方面,动态权重与服务成功率正相关,即某个服务地址对应的服务成功率越大,则该服务地址的动态权重也越大,反之,某个服务地址对应的服务成功率越小,则该服务地址的动态权重也越小。
[0089]
在本技术实施例的一种具体实现方式中,可以根据下式进行动态权重的计算:动态权重=(最小服务延迟时间
÷
服务延迟时间)
×
(服务成功率
÷
最大服务成功率),其中,最小服务延迟时间为各个服务地址对应的服务延迟时间中的最小值,最大服务成功率为各个服务地址对应的服务成功率中的最大值。
[0090]
步骤s2033、根据静态权重和动态权重确定服务地址列表中的各个服务地址的服务权重。
[0091]
一方面,服务权重与静态权重正相关,即某个服务地址的静态权重越大,则该服务地址的服务权重也越大,反之,某个服务地址的静态权重越小,则该服务地址的服务权重也越小。另一方面,服务权重与动态权重正相关,即某个服务地址的动态权重越大,则该服务地址的服务权重也越大,反之,某个服务地址的动态权重越小,则该服务地址的服务权重也越小。
[0092]
在本技术实施例的一种具体实现方式中,可以将服务地址的静态权重和动态权重的乘积作为其服务权重,即:服务权重=静态权重
×
动态权重。
[0093]
在确定服务地址列表中的各个服务地址的服务权重之后,则可以基于负载均衡策略,根据服务权重从服务地址列表中选取最优服务地址。
[0094]
在本技术实施例的一种具体实现方式中,可以采用随机选取的负载均衡策略,即从服务地址列表中随机选取服务地址来作为最优服务地址。其中,对于任意一个服务地址而言,其被随机选取的概率与该服务地址的服务权重正相关,即某个服务地址的服务权重越大,则该服务地址被随机选取的概率也越大,反之,某个服务地址的服务权重越小,则该服务地址被随机选取的概率也越小。
[0095]
在本技术实施例的另一种具体实现方式中,可以采用轮询选取的负载均衡策略,即按照顺序从服务地址列表中轮流选取服务地址来作为最优服务地址。其中,对于任意一个服务地址而言,其被轮询选取的次数与该服务地址的服务权重正相关,即某个服务地址的服务权重越大,则该服务地址被轮询选取的次数也越多,反之,某个服务地址的服务权重越小,则该服务地址被轮询选取的次数也越少。
[0096]
需要说明的是,以上的负载均衡策略仅为示例,在实际应用中,可以根据具体情况采用其它的负载均衡策略,本技术实施例对此不作具体限定。
[0097]
在选取出最优服务地址之后,可以获取最优服务地址对应的第一端口,并获取本机地址和本机地址对应的第二端口,然后根据最优服务地址、本机地址、第一端口和第二端口判断与最优服务地址对应的第二插件是否处于进程内。
[0098]
具体地,若最优服务地址和本机地址一致,且第一端口和第二端口一致,则说明最优服务地址对应的第二插件处于进程内,即该第二插件与第一插件处于同一进程内,此时可以执行步骤s204。
[0099]
步骤s204、使用内存对象调用的方式调用与最优服务地址对应的第二插件为第一插件提供目标服务。
[0100]
在这一方式下,如图4所示,宿主可以直接在当前进程的内存中调用第二插件的对象实例,从而为第一插件提供目标服务。
[0101]
若最优服务地址和本机地址不一致,或第一端口和第二端口不一致,则说明最优服务地址对应的第二插件处于进程外,即该第二插件与第一插件分别处于不同的进程,此时宿主可以使用rpc的方式调用与最优服务地址对应的第二插件为第一插件提供目标服务。
[0102]
在本技术实施例中,rpc调用具体可以包括两种情况。
[0103]
第一种情况,若最优服务地址和本机地址一致,且第一端口和第二端口不一致,则说明最优服务地址对应的第二插件与第一插件处于同一主机的不同进程中,此时如图5所示,第一插件的宿主(记为宿主a)可以与第二插件的宿主(记为宿主b)进行交互,通过宿主b进行请求分发,从而在进程外调用第二插件为第一插件提供目标服务。
[0104]
第二种情况,若最优服务地址和本机地址不一致,则说明最优服务地址对应的第二插件不在本机中,此时如图6所示,第一插件的宿主(记为宿主a,所处的主机记为主机1)可以与本机外的第二插件的宿主(记为宿主b,所处的主机记为主机2)进行交互,通过宿主b进行请求分发,从而跨主机调用第二插件为第一插件提供目标服务。
[0105]
综上所述,本技术实施例确定第一插件待调用的目标服务;其中,第一插件为预设的分布式服务系统中的任意一个插件;获取与目标服务对应的服务地址列表;其中,服务地址列表中包括各个第二插件的服务地址,第二插件为在分布式服务系统中提供目标服务的插件;基于预设的负载均衡策略从服务地址列表中选取最优服务地址;其中,负载均衡策略
为在进程内和进程外进行负载均衡的策略;若与最优服务地址对应的第二插件处于进程内,则使用内存对象调用的方式调用与最优服务地址对应的第二插件为第一插件提供目标服务。通过本技术实施例,可以基于负载均衡策略在进程内和进程外提供相同服务的插件中选取最优的插件,若选取的插件处于进程内,则不再使用rpc的方式进行服务调用,而是使用内存对象调用的方式进行服务调用,从而有效减少了tcp协议开销,提高了服务调用效率。
[0106]
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
[0107]
对应于上文实施例所述的一种分布式服务调用方法,图7示出了本技术实施例提供的一种分布式服务调用装置的一个实施例结构图。
[0108]
本实施例中,一种分布式服务调用装置可以包括:
[0109]
目标服务确定模块701,用于确定第一插件待调用的目标服务;其中,所述第一插件为预设的分布式服务系统中的任意一个插件;
[0110]
服务地址列表获取模块702,用于获取与所述目标服务对应的服务地址列表;其中,所述服务地址列表中包括各个第二插件的服务地址,所述第二插件为在所述分布式服务系统中提供所述目标服务的插件;
[0111]
服务地址选取模块703,用于基于预设的负载均衡策略从所述服务地址列表中选取最优服务地址;其中,所述负载均衡策略为在进程内和进程外进行负载均衡的策略;
[0112]
进程内服务调用模块704,用于若与所述最优服务地址对应的第二插件处于进程内,则使用内存对象调用的方式调用与所述最优服务地址对应的第二插件为所述第一插件提供所述目标服务。
[0113]
在本技术实施例的一种具体实现方式中,所述服务地址选取模块可以包括:
[0114]
服务权重确定子模块,用于确定所述服务地址列表中的各个服务地址的服务权重;
[0115]
负载均衡子模块,用于基于所述负载均衡策略,根据所述服务权重从所述服务地址列表中选取所述最优服务地址。
[0116]
在本技术实施例的一种具体实现方式中,所述服务权重确定子模块可以包括:
[0117]
静态权重确定单元,用于确定所述服务地址列表中的各个服务地址的静态权重;
[0118]
动态权重确定单元,用于确定所述服务地址列表中的各个服务地址的动态权重;
[0119]
服务权重确定单元,用于根据所述静态权重和所述动态权重确定所述服务地址列表中的各个服务地址的服务权重。
[0120]
在本技术实施例的一种具体实现方式中,所述静态权重确定单元可以具体用于:获取所述服务地址列表中的各个服务地址对应的硬件资源数;根据所述硬件资源数确定所述服务地址列表中的各个服务地址的静态权重;其中,所述静态权重与所述硬件资源数正相关。
[0121]
在本技术实施例的一种具体实现方式中,所述动态权重确定单元可以具体用于:获取所述服务地址列表中的各个服务地址对应的服务延迟时间和服务成功率;根据所述服务延迟时间和所述服务成功率确定所述服务地址列表中的各个服务地址的动态权重;其
中,所述动态权重与所述服务延迟时间负相关,所述动态权重与所述服务成功率正相关。
[0122]
在本技术实施例的一种具体实现方式中,所述分布式服务调用装置还可以包括:
[0123]
信息获取模块,用于获取所述最优服务地址对应的第一端口;获取本机地址和所述本机地址对应的第二端口;
[0124]
进程判断模块,用于根据所述最优服务地址、所述本机地址、所述第一端口和所述第二端口判断与所述最优服务地址对应的第二插件是否处于进程内。
[0125]
在本技术实施例的一种具体实现方式中,所述进程判断模块可以具体用于:若所述最优服务地址和所述本机地址一致,且所述第一端口和所述第二端口一致,则判定与所述最优服务地址对应的第二插件处于进程内;若所述最优服务地址和所述本机地址不一致,或所述第一端口和所述第二端口不一致,则判定与所述最优服务地址对应的第二插件处于进程外。
[0126]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置,模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0127]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0128]
图8示出了本技术实施例提供的一种终端设备的示意框图,为了便于说明,仅示出了与本技术实施例相关的部分。
[0129]
如图8所示,该实施例的终端设备8包括:处理器80、存储器81以及存储在所述存储器81中并可在所述处理器80上运行的计算机程序82。所述处理器80执行所述计算机程序82时实现上述各个分布式服务调用方法实施例中的步骤,例如图2所示的步骤s201至步骤s204。或者,所述处理器80执行所述计算机程序82时实现上述各装置实施例中各模块/单元的功能,例如图7所示模块701至模块704的功能。
[0130]
示例性的,所述计算机程序82可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器81中,并由所述处理器80执行,以完成本技术。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序82在所述终端设备8中的执行过程。
[0131]
所述终端设备8可以是桌上型计算机、笔记本、掌上电脑等计算设备。本领域技术人员可以理解,图8仅仅是终端设备8的示例,并不构成对终端设备8的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备8还可以包括输入输出设备、网络接入设备、总线等。
[0132]
所述处理器80可以是中央处理单元(central processing unit,cpu),还可以是其它通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0133]
所述存储器81可以是所述终端设备8的内部存储单元,例如终端设备8的硬盘或内存。所述存储器81也可以是所述终端设备8的外部存储设备,例如所述终端设备8上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪
存卡(flash card)等。进一步地,所述存储器81还可以既包括所述终端设备8的内部存储单元也包括外部存储设备。所述存储器81用于存储所述计算机程序以及所述终端设备8所需的其它程序和数据。所述存储器81还可以用于暂时地存储已经输出或者将要输出的数据。
[0134]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0135]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0136]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0137]
在本技术所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
[0138]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0139]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0140]
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本技术实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,
random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不包括电载波信号和电信信号。
[0141]
以上所述实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1