一种基于微服务架构的组件云端调用方法及系统与流程

文档序号:30522947发布日期:2022-06-25 05:39阅读:87来源:国知局
一种基于微服务架构的组件云端调用方法及系统与流程

1.本发明涉及云服务领域,特别涉及一种基于微服务架构的组件云端调用方法及系统。


背景技术:

2.数字化转型与云化,需要对中台/系统的业务组件、服务组件进行云化部署,尤其基于微服务架构搭建的平台和系统,当中涉及的服务组件繁多,在现有技术中,在组件云部署是,都是将一个中台直接部署在一个云上,即一个中台中包括的所有服务组件都部署在一个云端,这就导致对云服务供应商的一来,同时不同服务的组件若在不同的云上部署,相同的组件就需要重复部署,运维成本很高。
3.因此,现有技术还有待改进和提高。


技术实现要素:

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.图1为本发明提供的基于微服务架构的组件云端调用方法的实施例的流程图;
37.图2为本发明提供的基于微服务架构的组件云端调用方法的应用场景示意图;
38.图3为本发明提供的基于微服务架构的组件云端调用方法中的实施例中组件部署与调用的过程示意图;
39.图4为本发明提供的基于微服务架构的组件云端调用方法中的实施例中云端和中台运行环境一致时的逻辑框图;
40.图5为本发明提供的基于微服务架构的组件云端调用方法中的实施例中云端和中台运行环境不一致时的逻辑框图;
41.图6为本发明提供的基于微服务架构的组件云端调用方法中的实施例中单服务多组件在运行环境一致时的组件调用场景流程图;
42.图7为本发明提供的基于微服务架构的组件云端调用方法中的实施例中单服务多组件在运行环境不一致时的组件调用场景流程图;
43.图8为本发明提供的基于微服务架构的组件云端调用方法中的实施例中多服务多组件在运行环境一致时的组件调用场景流程图;
44.图9为本发明提供的基于微服务架构的组件云端调用方法中的实施例中多服务多组件在运行环境一致时的组件调用场景流程图;
45.图10为本发明提供的基于微服务架构的组件云端调用系统的实施例的结构原理图;
46.图11为本发明提供的基于微服务架构的组件云端调用系统的实施例中云端和中台的具体结构原理图。
具体实施方式
47.为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
48.实施例一
49.如图1所示,所述基于微服务架构的组件云端调用方法的一个实施例中,包括步骤:
50.s100、中台接收服务请求,根据所述服务请求向各个云端发送组件调用请求;
51.s200、所述云端接收所述组件调用请求,根据所述组件调用请求在所述云端的本地查找目标组件。
52.如图2所示,本实施例提供的基于微服务架构的组件云端调用方法中,中台可以是提供多个业务的业务中台,也可以是只具备单个应用的应用中台,具体地,所述中台为电子设备,可以是移动设备、本地设备或者是服务器,所述中台可以支持多种服务,当某一个服务需要执行时,服务需求端(执行服务的终端,可以是所述中台本身的电子设备,也可以是另外的电子设备)发出所述服务请求,所述中台接收所述服务请求,根据所述服务请求向各个云端发送所述组件调用请求。所述云端上设置有组件集,所述云端接收到所述组件调用请求后,在本地的组件集中查找所述组件调用请求对应的目标组件。
53.具体地,所述中台根据所述服务请求向各个云端发送组件调用请求,包括:
54.所述中台根据所述服务请求对应的所述目标服务确定目标组件配置需求;
55.所述中台根据所述目标组件配置需求向所述各个云端发送组件调用请求。
56.所述服务请求用于获取所述目标服务的服务组件进行运行以完成所述目标服务。所述中台接收到所述服务请求后,确定所述服务请求对应的所述目标服务,再根据所述目标服务确定所述目标组件配置需求,具体地,所述目标组件配置需求中包括所述目标服务需要的服务组件。
57.在一种可能的实现方式中,所述中台可以将所述目标组件配置需求群发给每个所述云端,但是这样会造成比较多的通讯量,特别是在设置了较多的所述云端的情况下。在本实施例中,所述中台中设置有调用端组件调用索引,所述调用端组件索引中包括各个服务需要的组件所在的云端地址信息,从而可以只将所述目标组件配置需求发送给存储有所述目标组件配置需求对应的组件的云端。
58.所述中台根据所述目标组件配置需求向各个所述云端发送组件调用请求,包括:
59.所述中台根据预先编制的调用端组件调用索引确定所述目标组件配置需求对应的目标云端地址;
60.所述中台根据所述目标云端地址向所述目标云端地址对应的所述云端发送所述组件调用请求。
61.如图3所示,在进行中台开发时,首先对各个服务所需要的组件进行梳理,形成组件调用需求清单,并且根据服务的业务或应用流程,配置组件调用顺序,编写所述调用端组件调用索引。所述调用端组件调用索引中存储有服务需要的组件所在的云端地址信息、执行顺序信息。当所述中台接收到所述目标组件配置需求后,根据所述调用端组件调用索引确定所述目标组件配置需求中的各个服务组件存储在哪个云端,即,确定所述目标组件配置需求对应的目标云端地址。进而所述中台根据所述目标云端地址向对应的所述云端发送所述组件调用请求。
62.在本实施例中,如图3所示,预先将所述中台支持的各个服务进行组件拆分,随后将不同的组件部署在各个所述云端上,并预先建立每个所述云端上服务组件与存储地址的映射关系,从而使得所述云端接收到所述组件调用请求后,可以根据所述映射关系确定所述组件调用请求对应的所述目标组件在本地的存储地址,即所述云端根据所述组件调用请求在所述云端的本地查找目标组件,包括:
63.所述云端根据所述组件调用请求以及预先建立的组件与存储地址的映射关系,确定所述目标组件的存储地址。
64.每个所述云端中设置有组件库,存储在所述云端上的组件是存储在所述组件库中,可以根据类别将组件分类存储在所述组件库中,即,所述组件库中包括至少一个类别的至少一个组件,所述至少一个组件是对所述正态对应的至少一个服务进行组件拆解得到的。具体地,如图3所示,基于所述中台支持的服务进行组件拆解,然后确定不同的组件存储的所述云端,对于每个所述云端上存储的组件,根据组件特征进行归类组合,形成组件集,所述组件集中包括所述组件库,根据所述组件集中组件清单及每个所述组件所在的地址(包括ip地址、物理地址),建立所述映射关系,得到每个所述云端上的组件索引,将每个云端对应的组件集、组件索引进行“组件云端部署装置”封装,再将所述组件云端部署装置部署到对应的所述云端,这样,每个所述云端接收到所述组件调用请求后,可以通过所述组件云端部署装置中的所述组件集得到存储在本地的所述目标组件的存储地址。
65.请再次参阅图1,本实施例提供的基于微服务机构的组件云端调用方法,还包括步
骤:
66.s300、所述平台调用所述目标组件以完成目标服务。
67.所述平台需要调用所述目标组件运行,获取所述目标组件的运行结果返回给服务,按照所述目标服务的组件运行顺序依次获取所述目标服务对应的各个所述目标组件的运行结果,最终完成所述目标服务。
68.对于不同的云服务提供商来说,对应的云端开发工具和开发环境可能是不同的,即各个所述云端的运行环境可能不同,所述中台的开发工具和开发环境也可能是云端不同,而存储在各个云端内的组件是基于所述云端的运行环境的,从而使得各个组件可以在本地运行以进行检测,同时也方便后期维护时直接在所述云端上对组件进行更新升级。
69.通过本实施例提供的方法,组件云化部署不受限于运行环境及云服务供应商;组件上云后可不受限地被服务、应用调用;组件复用意味着部分中台的云化部署可更轻量化;组件复用,可提升中台构建的灵活度,更适用于敏捷开发项目;通过本专利的装置,组件的运维成本也会相对降低。
70.为了实现不同云端的运行环境的兼容,在本实施例中,所述平台调用所述目标组件,对于所述云端和所述中台的运行环境一致或者不一致的两种情况,需要进行不同的处理。
71.具体地,所述平台调用所述目标组件以完成目标服务,包括:
72.所述云端获取所述云端与所述中台的运行环境;
73.当所述云端的运行环境和所述中台的运行环境一致时,所述平台直接调用所述目标组件运行以完成所述目标服务;
74.当所述云端的运行环境和所述中台的运行环境不一致时,所述云端通过环境编译器对所述目标组件进行运行环境适配编译;
75.所述平台调用编译后的所述目标组件运行以完成所述目标服务。
76.如图4所示,所述组件云端部署装置中还包括环境编译器,所述云端查找到所述目标组件后,将所述目标组件发往所述环境编译器,通过所述环境编译器识别所述云端的运行环境和所述中台的运行环境是否一致,具体地,所述运行环境包括虚拟机版本、虚拟机程序等,若一致,则所述中台可以直接调用所述目标组件进行运行,即所述云端将所述目标组件发往所述中台,所述中台运行后将运行结果返回服务需求端。
77.如图5所示,若所述云端的运行环境和所述中台的运行环境不一致,那么所述云端先对所述目标组件进行环境适配编译,具体地,将所述目标组件发往所述环境编译器后,所述环境编译器根据所述云端的运行环境和所述中台的运行环境对所述目标组件进行适配编译,使得编译后的所述目标组件能够在所述中台上运行。
78.所述云端通过环境编译器对所述目标组件进行运行环境适配编译,包括:
79.所述云端在缓存空间中划出编译编译缓存;
80.所述云端通过所述环境编译器对所述目标组件进行运行环境适配编译,将编译完成后的所述目标组件存放在所述环境编译缓存。
81.具体地,所述组件云端部署装置中的组件集在所述云端的缓存空间化出所述环境编译缓存,所述环境编译器将编译完成后的所述目标组件存放在所述环境编译缓存中,所述中台通过所述环境编译缓存调用已编译的组件运行,也就是说,所述云端将所述环境编
译缓存中存放的已编译完成的所述目标组件发送给所述中台。
82.在一种可能的实现方式中,所述云端调用所述环境编译缓存中存放的已编译完成的所述目标组件后,所述云端可以保留已编译完成的所述目标组件的复制本在所述环境编译缓存中。所述中台每次更新运行环境版本时,可以发送通知给所述云端,所述云端接收到所述通知后,清空所述环境编译缓存。对于与所述云端的运行环境不一致的所述中台提出的组件调用请求,所述云端接收到所述组件调用请求后,查询所述环境编译缓存中是否已存在对应的组件,若已存在,则可以直接将所述环境编译缓存中对应的组件发送给所述中台,每次所述环境编译缓存中的组件被调用时,所述云端将所述环境编译缓存中被调用的组件对应的调用次数加一,若不存在,则进行组件适配编译。所述云端可以每间隔一个预设时长对所述环境编译缓存中的组件进行清理,清理不受接收到所述通知对环境编译缓存进行清空动作的影响。每次清理时,所述云端确定当前所述环境编译缓存中存放的组件的调用次数,并删除调用次数低于所述环境编译缓存中所有的组件的调用次数的平均值的组件。
83.在本实施例中,对于所述中台需要处理多个服务时,可以创建多个线程,将各个服务对应的组件调用请求分别发送给所述云端,多个服务在调用过程中互不影响、互不干扰。
84.下面结合四种具体的应用场景进行举例说明:
85.如图6所示,同运行环境的单个应用,通过调用不同的组件集内的组件,输出相应的应用能力;
86.步骤一:中台a执行服务a运行时,服务a根据所需组件向“调用端组件索引”发起请求;
87.步骤二:调用端组件索引根据地址信息向云服务组件集进行寻址并发送调用请求;
88.步骤三:组件集a收到调用请求,调用组件a1,同时启动环境编译器;组件集b收到调用请求,调用组件b2;
89.步骤四:组件集a的环境编译器识别组件集a所在的服务器环境及中台a所在的服务器环境为一致;组件集b的环境编译器识别组件集b所在的服务器环境及中台a所在的服务器环境为一致;
90.步骤五:中台a中的服务a直接执行组件a1、组件b2的运行。
91.如图7所示,不同运行环境的单个应用,通过调用不同组件集内的组件,输出相应的应用能力;
92.步骤一:中台a执行服务a运行时,服务a根据所需组件向“调用端组件索引”发起请求;
93.步骤二:调用端组件索引根据地址信息向云服务组件集进行寻址并发送调用请求;
94.步骤三:组件集a收到调用请求,调用组件a1,同时启动环境编译器;组件集b收到调用请求,调用组件b2,同时启动环境编译器;
95.步骤四:组件集a的环境编译器识别组件集a所在的服务器环境及中台a所在的服务器环境不一致,启动组件编译程序;组件集b的环境编译器识别组件集b所在的服务器环境及中台a所在的服务器环境不一致,启动组件编译程序;
96.步骤五:组件集a在服务器缓存空间划出环境编译缓存;组件集b在服务器缓存空间划出环境编译缓存;
97.步骤六:环境编译器根据中台所在的环境执行对组件进行环境适配编译,并将编译完成后的组件存放在环境编译缓存中;
98.步骤七:中台通过环境编译缓存调用已编译的组件运行。
99.如图8所示,同运行环境的多个应用,同时通过调用不同组件集内的组件且多个服务间需要调用某个组件集的同一组件,输出相应的应用能力;
100.步骤一:中台a执行服务a与服务b时,服务a根据所需组件向“调用端组件索引”发起请求;服务b同步根据所需组件向“调用端组件索引”发起请求;服务a、服务b调用请求相互独立,互不干扰;
101.步骤二:调用端组件索引根据地址信息向云服务组件集进行寻址并发送调用请求;
102.步骤三:组件集a收到调用请求,调用组件a1、a2,同时启动环境编译器;组件集b收到调用请求,调用组件b2;
103.步骤四:组件集a的环境编译器识别组件集a所在的服务器环境及中台a所在的服务器环境为一致;组件集b的环境编译器识别组件集b所在的服务器环境及中台a所在的服务器环境为一致;
104.步骤五:服务a直接调用组件a1、b2运行;服务b直接调用组件a2、b2运行;服务a、服务b对组件的调用相对独立,互不干扰。
105.如图9所示,不同运行环境的多个应用,同时通过调用不同组件集内的组件且多个服务间需要调用某个组件集的同一组件,输出相应的应用能力;
106.步骤一:中台a执行服务a与服务b时,服务a根据所需组件向“调用端组件索引”发起请求;服务b同步根据所需组件向“调用端组件索引”发起请求;服务a、服务b调用请求相互独立,互不干扰;
107.步骤二:调用端组件索引根据地址信息向云服务组件集进行寻址并发送调用请求;
108.步骤三:组件集a收到调用请求,调用组件a1、a2,同时启动环境编译器;组件集b收到调用请求,调用组件b2;
109.步骤四:组件集a的环境编译器识别组件集a所在的服务器环境及中台a所在的服务器环境不一致,启动组件编译程序;组件集b的环境编译器识别组件集b所在的服务器环境及中台a所在的服务器环境不一致,启动组件编译程序;
110.步骤五:组件集a在服务器缓存空间划出环境编译缓存;组件集b在服务器缓存空间划出环境编译缓存;
111.步骤六:环境编译器根据中台所在的环境执行对组件进行环境适配编译,并将编译完成后的组件存放在环境编译缓存中;
112.步骤七:中台通过环境编译缓存调用已编译的组件运行;服务a调用已编译的组件a1-1与已编译的组件b2-1;服务b调用已编译的的组件a2-1与已编译的组件b2-2;调用相对独立,互不干扰。
113.综上所述,本实施例提供一种基于微服务架构的组件云端调用方法,中台接收到
服务请求后,向各个云端发送组件调用请求,云端接收组件调用请求后在本地查找目标组件,平台进而调用云端查找到的目标组件,这样,中台上支持的所有服务的组件可以不需要全部部署在一个云上,可以分别地部署在不同的云上,不会对某一个云服务供应商产生依赖,并且所有服务的组件部署在多个云上时也可以实现各个云上的组件均不重复部署,降低了运维成本。
114.应该理解的是,虽然本发明说明书附图中给出的的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
115.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取计算机可读存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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)等。
116.实施例二
117.基于上述实施例,本发明还相应提供了一种基于微服务架构的组件云端调用系统,如图10所示,所述系统包括中台和至少一个云端;
118.所述中台用于接收服务请求,根据所述服务请求向各个云端发送组件调用请求;
119.所述云端用于接收所述组件调用请求,根据所述组件调用请求在所述云端的本地查找目标组件;
120.所述中台还用于调用所述目标组件以完成目标服务。
121.在一种可能的实现方式中,如图11中的下半部分,所述中台包括6个部分:网络适配器、处理单元、i/o接口、显示单元、中台存储单元;
122.1)网络适配器,是中台/系统与互联网链接的网络硬件设备;与云端网络适配器通过互联网联通组件所在的云服务器;
123.2)处理单元,指的是中台/系统所在的设备的处理单元;
124.3)i/o接口,中台/系统在使用过程中需要连接显示器、键盘、鼠标等外部设备时所需要使用的硬件接口;
125.4)显示单元,中台/系统在应用时展示结果的设备,可以为显示器、智能终端;
126.5)外部设备,中台/系统在使用过程中需要输入、输出信息的硬件设备,如:键盘、
鼠标;
127.6)中台/系统存储单元,包括操作系统、服务/应用存储的程序、运存、缓存等。
128.如图11中的上半部分,所述云端包括3部分:处理单元、网络适配器、云服务虚拟机存储空间;
129.1)处理单元,指的是云服务器计算单元(即cpu);
130.2)网络适配器,指的是云服务器与互联网链接的网络硬件设备;
131.3)云服务虚拟机存储空间,即方法实施例中组件云端部署装置所存放的物理位置,其中包括虚拟机操作系统、环境编译器、组件索引、组件库的存储与应用。
132.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1