跨区域的服务调用方法、装置、系统及电子设备转让专利

申请号 : CN201810195626.0

文献号 : CN110247944B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 唐磊

申请人 : 阿里巴巴集团控股有限公司

摘要 :

本发明实施例提供了一种跨区域的服务调用方法、装置、系统及电子设备,系统包括跨区域代理模块和注册中心,注册中心用于存储本区域中的服务提供者的第一服务元数据以及跨区域代理模块的第二服务元数据,接收本区域服务消费者的跨区域服务调用查询请求,提供跨区域代理模块的第二服务元数据;跨区域代理模块用于接收本区域中服务消费者的跨区域服务调用请求,并向其他区域的服务提供者发起服务调用。本发明实施例通过在区域中增加了跨区域代理模块,使得本区域的服务消费者将跨区域的服务调用请求转至该跨区域代理模块,由其进行统一处理,从而减少了服务消费者与其他区域的服务提供者之间的跨区域连接数量,也减轻了注册中心的元数据存储压力。

权利要求 :

1.一种跨区域的服务调用系统,其特征在于,包括跨区域代理模块和注册中心:注册中心,用于存储本区域中的服务提供者的第一服务元数据,以及存储所述跨区域代理模块的第二服务元数据,并且接收本区域中需要进行跨区域服务调用的服务消费者的跨区域服务调用查询请求,向该服务消费者提供所述跨区域代理模块的第二服务元数据,所述第二服务元数据包括所述跨区域代理模块的地址信息和其他区域的服务提供者的第三服务元数据中除地址信息以外的第四服务元数据;

所述跨区域代理模块,用于接收所述本区域中服务消费者的跨区域服务调用请求,并根据所述跨区域服务调用请求中包含的所述第四服务元数据以及所述跨区域代理模块存储的其他区域的服务提供者的地址信息,向所述其他区域的服务提供者发起服务调用,其中,全部或者部分所述其他区域的服务提供者具有相同的第四服务元数据。

2.根据权利要求1所述的系统,其特征在于,

所述跨区域代理模块还用于与所述本区域以外的其他区域的注册中心进行通信,获取其他区域的服务提供者的第三服务元数据。

3.根据权利要求1所述的系统,其特征在于,

所述跨区域代理模块还用于向所述注册中心注册跨区域代理模块的第二服务元数据。

4.根据权利要求1所述的系统,其特征在于,所述跨区域代理模块为采用云服务总线技术构建的代理模块。

5.一种跨区域的服务调用方法,其特征在于,包括:

注册中心接收本区域中需要进行跨区域服务调用的服务消费者的跨区域服务调用查询请求,并向所述服务消费者返回跨区域代理模块的第二服务元数据,所述第二服务元数据包括所述跨区域代理模块的地址信息和其他区域的服务提供者的第三服务元数据中除地址信息以外的第四服务元数据;

所述跨区域代理模块接收所述本区域中服务消费者的跨区域服务调用请求,并根据所述跨区域服务调用请求中包含的所述第四服务元数据以及所述跨区域代理模块存储的其他区域的服务提供者的地址信息,向所述其他区域的服务提供者发起服务调用,其中,全部或者部分所述其他区域的服务提供者具有相同的第四服务元数据。

6.根据权利要求5所述的方法,其特征在于,还包括:

所述跨区域代理模块与所述本区域以外的其他区域的注册中心进行通信,获取其他区域的服务提供者的第三服务元数据。

7.根据权利要求5所述的方法,其特征在于,还包括:

所述跨区域代理模块向所述注册中心注册跨区域代理模块的所述第二服务元数据。

8.一种跨区域的服务调用方法,其特征在于,包括:

接收本区域中服务消费者的跨区域服务调用请求;

根据所述跨区域服务调用请求中包含的第四服务元数据以及已经存储的其他区域的服务提供者的地址信息,向所述其他区域的服务提供者发起服务调用,所述第四服务元数据为所述本区域以外的其他区域的服务提供者的第三服务元数据中除地址信息以外的服务元数据,其中,全部或者部分所述 其他区域的服务提供者具有相同的第四服务元数据。

9.根据权利要求8所述的方法,其特征在于,还包括:

与所述本区域以外的其他区域的注册中心进行通信,获取其他区域的服务提供者的第三服务元数据。

10.根据权利要求8所述的方法,其特征在于,还包括:

向注册中心注册跨区域代理模块的第二服务元数据,第二服务元数据包括所述跨区域代理模块的地址信息和所述其他区域的服务提供者的第三服务元数据中除地址信息以外的第四服务元数据。

11.一种跨区域的服务调用装置,其特征在于,包括:

请求接收模块,用于接收本区域中服务消费者的跨区域服务调用请求;

服务调用模块,用于根据所述跨区域服务调用请求中包含的第四服务元数据以及已经存储的其他区域的服务提供者的地址信息,向所述其他区域的服务提供者发起服务调用,所述第四服务元数据为所述本区域以外的其他区域的服务提供者的第三服务元数据中除地址信息以外的服务元数据,其中,全部或者部分所述其他区域的服务提供者具有相同的第四服务元数据。

12.根据权利要求11所述的装置,其特征在于,还包括:

服务元数据获取模块,用于与所述本区域以外的其他区域的注册中心进行通信,获取其他区域的服务提供者的第三服务元数据。

13.根据权利要求11所述的装置,其特征在于,还包括:

服务元数据注册模块,用于向所述注册中心注册跨区域代理模块的第二服务元数据,所述第二服务元数据包括所述跨区域代理模块的地址信息和所述其他区域的服务提供者的第三服务元数据中除地址信息以外的第四服务元数据。

说明书 :

跨区域的服务调用方法、装置、系统及电子设备

技术领域

[0001] 本发明实施例涉及一种服务调用方法、装置、系统及电子设备,尤其涉及一种跨区域的服务调用方法、装置、系统及电子设备。

背景技术

[0002] 为实现全球不同区域之间的服务调用,不同区域通过其注册中心同步并保存各区域所有服务提供者的服务元数据,当其中一个区域需要调用其他区域提供的服务时,该区域的服务消费者需要从本区域的注册中心获取其他区域中服务提供者的服务元数据,进而本区域的服务消费者直接与其他区域的服务提供者实现跨区域连接,以实现服务调用。
[0003] 发明人在实现本发明的过程中,发现现有技术存在如下缺陷:
[0004] 当服务提供者增多、区域个数增加时,不同区域之间每个服务消费者和服务提供者均需要跨区域连接,这种分散的点对点的跨区域的连接非常依赖于高质量的网络条件,当网络条件差时,影响服务调用质量,尤其是当服务消费者和服务提供者之间的跨区域连接的数量增多时,网络条件更加不稳定,将会严重影响服务调用质量。另外,注册中心需同步并保存各区域的服务提供者的服务元数据,随着区域个数增加以及各个区域中服务提供者的服务元数据的增加,注册中心的存储压力也会越来越大。

发明内容

[0005] 本发明实施例提供一种跨区域的服务调用方法、装置、系统及电子设备,减少不同区域之间的服务消费者和服务提供者之间的跨区域连接的数量,并且能够减轻注册中心的存储压力。
[0006] 本发明实施例提供了一种跨区域的服务调用系统,包括跨区域代理模块和注册中心:
[0007] 注册中心,用于存储本区域中的服务提供者的第一服务元数据,以及存储所述跨区域代理模块的第二服务元数据,并且接收本区域中需要进行跨区域服务调用的服务消费者的跨区域服务调用查询请求,向该服务消费者提供所述跨区域代理模块的第二服务元数据,所述第二服务元数据包括所述跨区域代理模块的地址信息和所述其他区域的服务提供者的第三服务元数据中除地址信息以外的第四服务元数据;
[0008] 所述跨区域代理模块,用于接收所述本区域中服务消费者的跨区域服务调用请求,并根据所述跨区域服务调用请求中包含的所述第四服务元数据以及所述跨区域代理模块存储的其他区域的服务提供者的地址信息,向所述其他区域的服务提供者发起服务调用。
[0009] 本发明实施例还提供了一种跨区域的服务调用方法,包括:
[0010] 注册中心接收本区域中需要进行跨区域服务调用的服务消费者的跨区域服务调用查询请求,并向所述服务消费者返回跨区域代理模块的第二服务元数据,所述第二服务元数据包括所述跨区域代理模块的地址信息和所述其他区域的服务提供者的第三服务元数据中除地址信息以外的第四服务元数据;
[0011] 所述跨区域代理模块接收所述本区域中服务消费者的跨区域服务调用请求,并根据所述跨区域服务调用请求中包含的所述第四服务元数据以及所述跨区域代理模块存储的其他区域的服务提供者的地址信息,向所述其他区域的服务提供者发起服务调用。
[0012] 本发明实施例还提供了一种跨区域的服务调用方法,包括:
[0013] 接收所述本区域中服务消费者的跨区域服务调用请求;
[0014] 根据所述跨区域服务调用请求中包含的所述第四服务元数据以及已经存储的其他区域的服务提供者的地址信息,向所述其他区域的服务提供者发起服务调用,所述第四服务元数据为所述本区域以外的其他区域的服务提供者的第三服务元数据中除地址信息以外的服务元数据。
[0015] 本发明实施例还提供了一种跨区域的服务调用装置,包括:
[0016] 请求接收模块,用于接收所述本区域中服务消费者的跨区域服务调用请求;
[0017] 服务调用模块,用于根据所述跨区域服务调用请求中包含的所述第四服务元数据以及已经存储的其他区域的服务提供者的地址信息,向所述其他区域的服务提供者发起服务调用,所述第四服务元数据为所述本区域以外的其他区域的服务提供者的第三服务元数据中除地址信息以外的服务元数据。
[0018] 本发明实施例还提供了一种跨区域的服务调用方法,包括:
[0019] 通过云服务总线获取客户端上传的服务调用请求;
[0020] 通过所述云服务总线获取所述服务调用请求对应的目标区域的服务提供者信息;
[0021] 依据所述服务提供者信息通过所述云服务总线向所述目标区域中的服务提供者发送所述服务调用请求。
[0022] 本发明实施例还提供了一种跨区域的服务调用装置,包括:
[0023] 获取模块,用于通过云服务总线获取服务调用请求对应的目标区域的服务提供者信息;
[0024] 发送模块,用于依据服务提供者信息通过云服务总线向目标区域中的服务提供者发送服务调用请求。
[0025] 本发明实施例还提供了一种跨区域服务调用系统,包括:
[0026] 云服务总线,用于获取至少一个目标区域的服务提供者信息;
[0027] 注册中心,用于存储云服务总线所辖区域中的服务提供者信息;
[0028] 其中,当云服务总线所属的区域中任意客户端上传服务调用请求时,通过云服务总线获取服务调用请求对应的目标区域的服务提供者信息;并依据服务提供者信息通过云服务总线向目标区域中的服务提供者发送服务调用请求。
[0029] 本发明实施例还提供了一种电子设备,包括:
[0030] 存储器,用于存储程序;
[0031] 处理器,耦合至所述存储器,用于执行所述程序,以用于:
[0032] 接收所述本区域中服务消费者的跨区域服务调用请求;
[0033] 根据所述跨区域服务调用请求中包含的所述第四服务元数据以及已经存储的其他区域的服务提供者的地址信息,向所述其他区域的服务提供者发起服务调用,所述第四服务元数据为所述本区域以外的其他区域的服务提供者的第三服务元数据中除地址信息以外的服务元数据。
[0034] 本发明实施例提供一种跨区域的服务调用方法、装置、系统及电子设备,通过在区域中增加了跨区域代理模块,跨区域代理模块本身作为本区域中的一个特殊的服务提供者,将自身的地址信息和其他区域的服务提供者的除了地址信息以外的元数据注册在注册中心中,从而使得本区域的服务消费者将跨区域的服务调用请求转至该跨区域代理模块,由其进行统一处理,从而减少了服务消费者与其他区域的服务提供者之间的跨区域连接数量,也减轻了注册中心的元数据存储压力。
[0035] 上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

[0036] 图1为本发明实施例的跨区域的服务调用系统的结构示意图;
[0037] 图2为本发明实施例一的跨区域的服务调用方法的流程示意图;
[0038] 图3为本发明实施例二的跨区域的服务调用方法的流程示意图;
[0039] 图4为本发明实施例三的跨区域的服务调用装置的结构示意图;
[0040] 图5为本发明实施例四的跨区域的服务调用方法的流程示意图;
[0041] 图6为本发明实施例五的跨区域的服务调用装置的结构示意图;
[0042] 图7为本发明实施例提供的电子设备的结构示意图。

具体实施方式

[0043] 下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0044] 术语说明:
[0045] CSB:全称为Cloud Service Bus,云服务总线,由阿里巴巴公司研发。云服务总线能够提供不同区域之间总线的能力,使得服务提供者可以跨区域提供服务。
[0046] 注册中心:服务元数据的存储中心,每个区域中都设有注册中心,服务消费者可以通过注册中心获取提供服务的服务提供者的服务元数据。
[0047] 服务元数据:主要是服务提供者的相关信息,包括服务提供者所提供的服务的名称、配置参数和IP地址等信息。
[0048] 另外,为了便于说明本发明实施例的技术方案,在描述的过程中定义了如下的名称:
[0049] 第一服务元数据:本区域中的服务提供者的服务元数据。
[0050] 第二服务元数据:跨区域代理模块的服务元数据。
[0051] 第三服务元数据:其他区域的服务提供者的服务元数据。
[0052] 第四服务元数据:其他区域的服务提供者的服务元数据中除了地址信息以外的服务元数据。
[0053] 本发明实施例的技术原理在于:在各个区域中添加了作为服务调用的出口节点的跨区域代理模块,由跨区域代理模块执行跨区域服务调用,从而减轻注册中心存储压力、减少跨区域连接数量,避免现有技术的服务调用过程中由于跨区域连接数量大而产生的同步延迟、存储压力大等弊端,提高全球跨区域服务调用效率。
[0054] 如图1所示,其为本发明实施例的跨区域的服务调用系统的结构示意图,如图中所示,在示例的场景中包括了三个区域:US(美国)、EU(欧洲)以及ASIA(亚洲)。在每个区域中均设置有注册中心1和跨区域代理模块2,该注册中心1和跨区域代理模块2构成了该区域的跨区域的服务调用系统,每个区域中具有一个或多个服务消费者3以及一个或多个服务提供者4,其中,跨区域代理模块2也可以根据需要设置一个或者多个,例如,可以针对本区域以外的每个其他区域设置一个跨区域代理模块2,也可以针对一个其他区域中不同类型的服务提供者4对应设置多个跨区域代理模块2。图中,仅以美国的服务消费者3向其他两个区域进行跨区域服务调用为例进行了展示。
[0055] 在每个区域中,均有多个服务消费者3和服务提供者4。本区域的注册中心1存储了本区域中的服务提供者4的第一服务元数据,并且还存储了跨区域代理模块2的第二服务元数据,当本区域的服务消费者3需要进行跨区域服务调用时,会先向本区域的注册中心1发起跨区域服务调用查询请求,注册中心1在接到跨区域服务调用查询请求后,向服务消费者3返回提供跨区域代理模块2的第二服务元数据,以将跨区域服务调用转移到跨区域代理模块2来进行处理,从而使得该区域中的全部服务消费者3通过跨区域代理模块2为对外接口,统一实现针对其他区域服务提供者4的跨区域服务调用,从而减少了现有技术中,本区域的服务消费者3和其他区域的服务提供者4之间建立的数量众多的直接连接关系。
[0056] 在本发明实施例的系统中,跨区域代理模块2可以视为本区域中的一个特殊的服务提供者,跨区域代理模块2和其他本地的服务提供者4一样将其自己的元数据(第二服务元数据)注册到注册中心1中(图中美国区域中跨区域代理模块2与本区域的注册中心1之间的虚线表示了它们之间的注册关系)。跨区域代理模块2的第二服务元数据包括跨区域代理模块2的地址信息和其他区域的服务提供者4的第三服务元数据中除地址信息以外的第四服务元数据。
[0057] 跨区域代理模块2还可以与其他区域的注册中心1进行通信,来获取到其他区域的服务提供者4的第三服务元数据(图中美国区域中的跨区域代理模块2与其他区域中的注册中心1之间的虚线表示了它们之间的通信关系)。跨区域代理模块2可以将其他区域的服务提供者4的第三服务元数据存储到内存进行临时存储并且动态更新,也可以构建专门的存储空间进行长时间存储,并且在实际应用中,跨区域代理模块2可以不获取其他区域全部的服务提供者4的第三服务元数据,而是仅保存部分可用的其他区域全部的服务提供者4的第三服务元数据即可,并且可以通过与其他区域的注册中心1的通信来动态更新第三服务元数据。
[0058] 由此可见,跨区域代理模块2实际上分担了现有技术中的注册中心1对于其他区域的服务提供者4的第三服务元数据的存储压力。
[0059] 实际上,对于同一区域的服务提供者4来说,除了地址信息以外的其他元数据是基本相同的,即上述的第四服务元数据是相同的,例如服务的名称和配置参数等,或者在同一区域中,存在不同类型的服务提供者4以提供不同种类的服务,但是,对于提供同一类型的服务提供者4而言,这些服务提供者4的第四服务元数据也是相同的。跨区域代理模块2向注册中心1所注册的第四服务元数据中所包含的地址信息是跨区域代理模块2自身的地址信息,而第四服务元数据中包含的第三服务元数据又是具有共性的数据,因此对于提供同一类型的服务提供者4只存储一条或者数量非常少的第三服务元数据即可,因此,跨区域代理模块2向注册中心1所注册的第四服务元数据的数据量非常小,并且其条数和本区域中的跨区域代理模块2的数量是相同的,而跨区域代理模块2的数量远远小于其他区域中的服务提供者4数量,相比之下,由于现有技术中的注册中心1是完整的同步其他区域的注册中心1中存储的服务提供者4的服务元数据,而服务元数据本身又是以整体的形式保存的,由于各个服务提供者4的地址信息不同,因此,有多少个服务提供者4,注册中心1就会存储多少条服务元数据,造成了注册中心1的存储量非常巨大,而本发明实施例的技术方案则大幅度降低了注册中心1的服务元数据的存储压力。
[0060] 本区域中的服务消费者3在访问完注册中心1后,获取到了跨区域代理模块2的第二服务元数据后,便向跨区域代理模块2发起跨区域服务调用请求。相应地,跨区域代理模块2用于接收本区域的服务消费者3的跨区域服务调用请求,并根据跨区域服务调用请求中包含的第四服务元数据以及跨区域代理模块2存储的其他区域的服务提供者4的地址信息,向其他区域的服务提供者4发起服务调用(图中的实线箭头表示从服务消费者3发起跨区域服务调用所涉及的交互关系)。由此,本区域中的服务消费者3的跨区域服务调用请求都集中到了跨区域代理模块2处理,由跨区域代理模块2统一对外发起调用,从而减少了现有技术中跨区域间的服务消费者3和服务提供者4的点对点连接,显著提高了服务调用质量,并且跨区域代理模块2可以同时作为调度管控中心,可实现针对跨区域服务调用的总体流量控制。
[0061] 此外,需要说明的是,在本发明的实施例中,上述的跨区域代理模块2可以采用云服务总线(CSB)技术构建的代理模块,其中上述的地址信息可以是IP地址信息。另外,在一个区域中的多个服务提供者4中,可能不是全部的服务提供者4都能提供跨区域的服务调用,因此,跨区域代理模块2从其他区域的注册中心1获取的服务提供者4的第三服务元数据中,可以仅获取具有能够提供跨区域的服务调用能力的服务提供者4的第三服务元数据,而不需要获取其他区域的全部服务提供者4的服务元数据。
[0062] 实施例一
[0063] 如图2所示,其为本发明实施例一的跨区域的服务调用方法的流程示意图,本实施例的服务调用方法基于图1中所示的跨区域的服务调用系统,其包括:
[0064] S201:注册中心接收本区域中需要进行跨区域服务调用的服务消费者的跨区域服务调用查询请求,并向服务消费者返回跨区域代理模块的第二服务元数据,第二服务元数据包括跨区域代理模块的地址信息和其他区域的服务提供者的第三服务元数据中除地址信息以外的第四服务元数据;其中,如前面所说明的,全部或者部分其他区域的服务提供者具有相同的第四服务元数据。
[0065] S202:跨区域代理模块接收本区域中服务消费者的跨区域服务调用请求,并根据跨区域服务调用请求中包含的第四服务元数据以及跨区域代理模块存储的其他区域的服务提供者的地址信息,向其他区域的服务提供者发起服务调用。
[0066] 进一步地,该方法还可以包括:
[0067] S203:跨区域代理模块与本区域以外的其他区域的注册中心进行通信,获取其他区域的服务提供者的第三服务元数据。
[0068] 此外,该方法还可以包括:
[0069] S204:跨区域代理模块向注册中心注册跨区域代理模块的第二服务元数据。
[0070] 需要说明的是,步骤S201和S202为主要的跨区域服务调用流程,而步骤S203和S204是为跨区域服务调用进行的准备工作,在时序关系上应该在步骤S201和S202之前,不过也可以进行实时的动态更新,即在S203中,跨区域代理模块与本区域以外的其他区域的注册中心可以进行持续性的通信,实时或者定期更新其他区域的服务提供者的第三服务元数据,相应地,在S204中,跨区域代理模块也可以实时或者定期更新向注册中心注册的第二服务元数据。
[0071] 本发明实施例的跨区域的服务调用方法,在区域中增加了跨区域代理模块,跨区域代理模块本身作为本区域中的一个特殊的服务提供者,将自身的地址信息和其他区域的服务提供者的除了地址信息以外的元数据注册在注册中心中,从而使得本区域的服务消费者将跨区域的服务调用请求转至该跨区域代理模块,由其进行统一处理,从而减少了服务消费者与其他区域的服务提供者之间的跨区域连接数量,也减轻了注册中心的元数据存储压力。
[0072] 实施例二
[0073] 如图3所示,其为本发明实施例二的跨区域的服务调用方法的流程示意图,本实施例的跨区域的服务调用方法描述的是跨区域代理模块所执行的处理流程,包括:
[0074] S301:接收本区域中服务消费者的跨区域服务调用请求;
[0075] S302:根据跨区域服务调用请求中包含的第四服务元数据以及已经存储的其他区域的服务提供者的地址信息,向其他区域的服务提供者发起服务调用,第四服务元数据为本区域以外的其他区域的服务提供者的第三服务元数据中除地址信息以外的服务元数据。其中,如前面所说明的,全部或者部分其他区域的服务提供者具有相同的第四服务元数据。
[0076] 进一步地,该方法还可以包括:
[0077] S303:与本区域以外的其他区域的注册中心进行通信,获取其他区域的服务提供者的第三服务元数据。
[0078] 此外,该方法还可以包括:
[0079] S304:向注册中心注册跨区域代理模块的第二服务元数据,第二服务元数据包括跨区域代理模块的地址信息和其他区域的服务提供者的第三服务元数据中除地址信息以外的第四服务元数据。
[0080] 与实施例一的情况类似,步骤S301和S302为主要的跨区域服务调用流程,而步骤S303和S304是为跨区域服务调用进行的准备工作,在时序关系上应该在步骤S301和S302之前,不过也可以进行实时的动态更新,即在S303中,跨区域代理模块与本区域以外的其他区域的注册中心可以进行持续性的通信,实时或者定期更新其他区域的服务提供者的第三服务元数据,相应地,在S304中,跨区域代理模块也可以实时或者定期更新向注册中心注册的第二服务元数据。
[0081] 本发明实施例的跨区域的服务调用方法,在区域中增加了跨区域代理模块,跨区域代理模块本身作为本区域中的一个特殊的服务提供者,将自身的地址信息和其他区域的服务提供者的除了地址信息以外的元数据注册在注册中心中,从而使得本区域的服务消费者将跨区域的服务调用请求转至该跨区域代理模块,由其进行统一处理,从而减少了服务消费者与其他区域的服务提供者之间的跨区域连接数量,也减轻了注册中心的元数据存储压力。
[0082] 实施例三
[0083] 如图4所示,其为本发明实施例三的跨区域的服务调用装置的结构示意图。该装置可以设置在图1中的跨区域代理模块中,该装置包括:
[0084] 请求接收模块401,用于接收所述本区域中服务消费者的跨区域服务调用请求;
[0085] 服务调用模块402,用于根据所述跨区域服务调用请求中包含的所述第四服务元数据以及已经存储的其他区域的服务提供者的地址信息,向所述其他区域的服务提供者发起服务调用,所述第四服务元数据为所述本区域以外的其他区域的服务提供者的第三服务元数据中除地址信息以外的服务元数据。
[0086] 进一步地,该装置还可以包括:
[0087] 服务元数据获取模块,用于与所述本区域以外的其他区域的注册中心进行通信,获取其他区域的服务提供者的第三服务元数据。
[0088] 进一步地,该装置还可以包括:
[0089] 服务元数据注册模块,用于向所述注册中心注册跨区域代理模块的所述第二服务元数据,所述第二服务元数据包括所述跨区域代理模块的地址信息和所述其他区域的服务提供者的第三服务元数据中除地址信息以外的第四服务元数据。
[0090] 本发明实施例的跨区域的服务调用装置,在区域中增加了跨区域代理模块,跨区域代理模块本身作为本区域中的一个特殊的服务提供者,将自身的地址信息和其他区域的服务提供者的除了地址信息以外的元数据注册在注册中心中,从而使得本区域的服务消费者将跨区域的服务调用请求转至该跨区域代理模块,由其进行统一处理,从而减少了服务消费者与其他区域的服务提供者之间的跨区域连接数量,也减轻了注册中心的元数据存储压力。
[0091] 实施例四
[0092] 如图5所示,其为本发明实施例四的跨区域的服务调用方法的流程示意图,本实施例的跨区域的服务调用方法描述的是云服务总线所执行的处理流程,包括:
[0093] S501:通过云服务总线获取客户端上传的服务调用请求;其中,如前面所述,跨区域代理模块可采用该云服务总线技术构建。
[0094] S502:通过云服务总线获取服务调用请求对应的目标区域的服务提供者信息;其中,上述服务调用请求所要访问的对象既可以是本区域的服务提供者,也可以是其他区域的服务提供者。当服务调用请求所要访问的区域为其他区域的服务提供者时,该目标区域的服务提供者信息主要包括上述第四服务元数据以及已经存储的其他区域的服务提供者的地址信息。
[0095] S503:依据服务提供者信息通过云服务总线向目标区域中的服务提供者发送服务调用请求。
[0096] 进一步地,在执行上述步骤S501的内容之前,还可以执行如下步骤:
[0097] S504:通过云服务总线获取至少一个目标区域的服务提供者信息。
[0098] 此外,在执行上述步骤S501的内容之前、执行上述步骤S504的内容之后,还可以执行如下步骤:
[0099] S505:存储待调用的至少一个目标区域的服务提供者信息。
[0100] 进一步地,上述步骤S502可以进一步细化为如下步骤:
[0101] S506:解析服务调用请求,判断服务调用请求所要访问的区域是否为本区域内的服务提供者;
[0102] S507:在判断结果为服务调用请求所要访问的区域为其他区域的服务提供者的情况下,确定服务调用请求所要访问的区域为目标区域;
[0103] S508:获取目标区域的服务提供者信息。
[0104] 此外,该方法还可以包括:
[0105] S509:在判断结果为服务调用请求所要访问的区域为本区域内的服务提供者的情况下,依据获取到的服务提供者信息,向服务提供者发送服务调用请求。
[0106] 进一步地,上述步骤S503可以进一步细化为如下步骤:
[0107] S510:在目标区域的个数为一个的情况下,通过云服务总线将服务调用请求发送至目标区域中的服务提供者;
[0108] S511:在目标区域的个数为多个的情况下,通过云服务总线将服务调用请求分别发送至目标区域中的服务提供者。
[0109] 进一步地,该方法还可以包括:
[0110] S512:通过注册中心存储本地云服务总线的服务提供者信息。如前面所述,注册中心可存储云服务总线的第二服务元数据,此处第二服务元数据包括上述云服务总线的地址信息和其他区域的服务提供者的第三服务元数据中除地址信息以外的第四服务元数据。
[0111] 进一步地,该方法还可以包括:
[0112] S513:通过云服务总线控制跨区域的总体流量。
[0113] 进一步地,该方法还可以包括:
[0114] S514:通过预设调用模块同步待调用区域的服务提供者信息。
[0115] 本发明实施例的跨区域的服务调用方法,在区域中增加了云服务总线,云服务总线本身作为本区域中的一个特殊的服务提供者,将自身的地址信息和其他区域的服务提供者的除了地址信息以外的元数据注册在注册中心中,从而使得本区域的服务消费者将跨区域的服务调用请求转至该云服务总线,由其进行统一处理,从而减少了服务消费者与其他区域的服务提供者之间的跨区域连接数量,也减轻了注册中心的元数据存储压力。
[0116] 实施例五
[0117] 如图6所示,其为本发明实施例五的跨区域的服务调用装置的结构示意图。该装置可以设置在图1中的跨区域代理模块中,该装置包括:
[0118] 接收模块601,用于通过云服务总线获取客户端上传的服务调用请求;
[0119] 获取模块602,用于通过云服务总线获取服务调用请求对应的目标区域的服务提供者信息;
[0120] 发送模块603,用于依据服务提供者信息通过云服务总线向目标区域中的服务提供者发送服务调用请求。
[0121] 本发明实施例的跨区域的服务调用装置,在区域中增加了云服务总线,云服务总线本身作为本区域中的一个特殊的服务提供者,将自身的地址信息和其他区域的服务提供者的除了地址信息以外的元数据注册在注册中心中,从而使得本区域的服务消费者将跨区域的服务调用请求转至该云服务总线,由其进行统一处理,从而减少了服务消费者与其他区域的服务提供者之间的跨区域连接数量,也减轻了注册中心的元数据存储压力。
[0122] 本发明实施例还提供了一种跨区域服务调用系统,包括:
[0123] 云服务总线,用于获取至少一个目标区域的服务提供者信息;
[0124] 注册中心,用于存储云服务总线所辖区域中的服务提供者信息;
[0125] 其中,当云服务总线所属的区域中任意客户端上传服务调用请求时,通过云服务总线获取服务调用请求对应的目标区域的服务提供者信息;并依据服务提供者信息通过云服务总线向目标区域中的服务提供者发送服务调用请求。
[0126] 进一步地,上述云服务总线,还用于获取至少一个目标区域的服务提供者信息,并存储待调用的至少一个目标区域的服务提供者信息。
[0127] 此外,上述云服务总线,还用于控制跨区域的总体流量。
[0128] 实施例六
[0129] 以上描述了跨区域的服务调用装置的内部功能和结构,图7为本发明实施例提供的电子设备的结构示意图,如图7所示,实际中,上述实施例中的跨区域的服务调用装置可实现为一种电子设备,可以包括:存储器71和处理器72。
[0130] 存储器71,用于存储程序。
[0131] 除上述程序之外,存储器71还可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令,例如线上购物平台、线上电商平台、电话簿数据,消息,图片,视频等。
[0132] 存储器71可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
[0133] 处理器72,耦合至存储器71,用于执行存储器71中的程序。
[0134] 在本发明一实施例中,处理器72可具体用于:
[0135] 接收本区域中服务消费者的跨区域服务调用请求;
[0136] 根据跨区域服务调用请求中包含的第四服务元数据以及已经存储的其他区域的服务提供者的地址信息,向其他区域的服务提供者发起服务调用,第四服务元数据为本区域以外的其他区域的服务提供者的第三服务元数据中除地址信息以外的服务元数据。
[0137] 上述的具体处理操作已经在前面实施例中进行了详细说明,在此不再赘述。
[0138] 进一步,如图7所示,电子设备还可以包括:通信组件73、电源组件74、音频组件75、显示器76等其它组件。图7中仅示意性给出部分组件,并不意味着电子设备只包括图7所示组件。
[0139] 通信组件73被配置为便于电子设备和其他设备之间有线或无线方式的通信。电子设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件73经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件73还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
[0140] 电源组件74,为电子设备的各种组件提供电力。电源组件74可以包括电源管理系统,一个或多个电源,及其他与为电子设备生成、管理和分配电力相关联的组件。
[0141] 音频组件75被配置为输出和/或输入音频信号。例如,音频组件75包括一个麦克风(MIC),当电子设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器71或经由通信组件73发送。在一些实施例中,音频组件75还包括一个扬声器,用于输出音频信号。
[0142] 显示器76包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。
[0143] 本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0144] 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。