分布式应用的发布方法、装置、设备及存储介质与流程
未命名
08-29
阅读:113
评论:0

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.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
37.图1为本技术适用的一种应用场景的示意图;
38.图2为本技术示例的应用之间的调用的示意图;
39.图3为本技术实施例一提供的一种分布式应用的发布方法的流程示意图;
40.图4为本技术实施例二提供的另一种分布式应用的发布方法的流程示意图;
41.图5为本技术实施例三提供的又一种分布式应用的发布方法的信令流程图;
42.图6为本技术示例的一种创建路由规则的界面示意图;
43.图7为本技术实施例四提供的一种分布式应用的发布装置的结构示意图;
44.图8为本技术实施例五提供的一种分布式应用的发布装置的结构示意图;
45.图9为本技术实施例六提供的一种电子设备的结构示意图。
46.通过上述附图,已示出本技术明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本技术构思的范围,而是通过参考特定实施例为本领域技术人员说明本技术的概念。
具体实施方式
47.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
48.需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
49.需要说明的是,本技术提供的一种分布式应用的发布方法、装置、设备及存储介质可用于分布式领域,也可用于除分布式领域之外的任意领域,本技术提供的一种分布式应用的发布方法、装置、设备及存储介质的应用领域不做限定。
50.随着用户的迅速增长和业务的快速发展,开发研发新版本上线的迭代周期越来越快,一方面要求为用户提供稳定的服务,一方面要求进行快速业务迭代。
51.目前,可以通过灰度发布方法对分布式应用进行新版本发布,在已存在的稳定版本(老版本)的应用之外,在同一个机房中,额外部署一个小规模的待发布的新版本的应用,让一部分用户继续使用老版本,另一部分用户开始使用新版本,如果用户对新版本使用的反应良好,则逐步扩大范围,把所有用户都迁移到新版本。
52.上述应用可以是一个组件级应用的微服务应用,由于业务的发展,出现了在将组件应用的多个微服务应用部署在不同机房的不同设备上的情况,针对每个机房执行上述灰
度发布方法进行新版本发布,使得新版本发布效率较低。
53.所以,本技术提供一种分布式应用的发布方法,业务服务器通过当前应用获取到目标业务的业务处理请求后,可以根据多个部署设备中部署的不同版本的下游应用的流量比例,调用多个部署设备中部署的下游应用的不同版本进行业务处理,得到业务处理结果,并基于业务处理结果可以确定下游应用的待发布版本是否满足发布条件,若满足,则确定可以进行发布,可以满足组件级应用的多个微服务应用部署在不同机房的不同设备上的场景中的新版本发布,提高了分布式应用的新版本发布的效率。
54.为了更清楚的说明本技术,下面,对本技术实施例涉及的名词作相关介绍:
55.一个应用程序通常可以通过多个组件构成,该应用程序可以称为组件级应用,每个组件代表不同的功能模块(在本技术中可以称为业务),每个组件中包括多个微服务应用,例如一个应用程序中包括“存款业务”、“信用卡业务”等功能模块,“存款业务”中还包括多个微服务应用为用户提供服务。
56.网关应用:可以是组件和组件之间用于通信的应用,即组件和组件之间的调用,需要通过网关应用进行调用。
57.非网关应用:是指组件中的应用,即普通的微服务应用。
58.为了便于理解,下面结合图1的示例,对本技术实施例所适用的应用场景进行说明。
59.图1为本技术适用的一种应用场景的示意图,请参见图1,包括:运维服务器101、业务服务器a102、业务服务器b103、以及业务服务器c104,运维服务器101、业务服务器a102、业务服务器b103、以及业务服务器c104之间可以通过互联网进行通信。
60.示例性的,业务服务器a102中部署当前应用,业务服务器b103中部署有当前应用的下游应用的版本1,业务服务器c104中部署有当前应用的下游应用的待发布版本,其中,当前应用和下游应用之间存在调用关系,例如为应用调用顺序为当前应用和下游应用,即当前应用调用下游应用。
61.业务服务器a102获取到目标业务对应的业务请求后,可以确定当前应用待调用的下游应用,然后确定下游应用部署在目标机房中的多个目标部署设备中的版本号,根据该版本号对应的流量比例实现调用。业务服务器b103、以及业务服务器c104属于同一个机房。
62.运维服务器101可以用于为目标应用建立路由规则。运维服务器101可以向预设应用所在的业务服务器发送路由规则。
63.以上述当前应用为例,若上述下游应用为目标应用,且目标应用为非网关应用,运维服务器101可以向目标应用所在组件中的非网关应用或者该组件中的网关所在的部署设备应用发送路由规则,那么,上述当前应用可以是目标应用所在组件中的非网关应用,或者,也可以是目标应用所在组件中的网关应用。那么,运维服务器101可以向当前应用所在的部署设备(即业务服务器a102)发送路由规则。
64.若上述下游应用为目标应用,且目标应用为网关应用,运维服务器101可以向目标应用所在组件中的非网关应用、该组件中的网关应用、指定应用中的任意一个所在的部署设备发送路由规则,那么,上述当前应用可以是目标应用所在组件中的非网关应用、该组件中的网关应用、指定应用中的任意一个。那么,运维服务器101可以向当前应用所在的部署设备(即业务服务器a102)发送路由规则。
65.可以理解,业务服务器a102、业务服务器b103、以及业务服务器c104的数量均可以为多个,图中未示出。
66.示例性的,为了更清楚描述应用之间的调用,请参考图2,图2对应用之间的调用进行说明。组件2中的当前应用可以接收到组件1中的调用方发起的业务处理请求,然后根据运维平台发送的路由规则,业务服务器a102可以将业务处理请求的流量按照不同的流量比例路由至不同的版本的下游应用a中,在图2中,x%流量对应一个链路,y%流量对应另一个链路,以图2中的x%流量对应的链路为例,业务处理请求的x%流量路由至待发布版本的下游应用a后,由待发布版本的下游应用a将业务处理请求的x%流量路由至该链路的a的下游应用,这里是为了方便说明仅示例下游应用a和a的下游应用,实际应用中,a的下游应用还可以存在下游应用,图中未示出。
67.下面以具体地实施例对本技术的技术方案以及本技术的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本技术的实施例进行描述。
68.图3为本技术实施例一提供的一种分布式应用的发布方法的流程示意图,该方法可以由业务服务器执行,也可以由设置在业务服务器中的业务处理装置执行,该装置可以是芯片、也可以是芯片模组、还可以是集成开发环境(integrated development environment,ide)等,以下以业务服务器为例,参考图3,该方法包括如下步骤:
69.s301、通过当前应用获取目标业务对应的业务处理请求。
70.业务服务器可以通过当前应用获取目标业务对应的业务处理请求,业务处理请求的个数可以是一个或者多个。
71.在一种可能的实现方式中,发起业务处理请求的调用方可以是当前应用所在组件的上游组件中的应用。
72.在另一种可能的实现方式中,发起业务处理请求的调用方可以是当前应用的上游应用,可以理解,当前应用的上游应用,与当前应用属于同一个组件。
73.s302、根据目标业务,确定当前应用待调用的下游应用。
74.获取到业务处理请求后,业务服务器可以根据目标业务,确定当前应用待调用的下游应用。
75.示例性的,业务服务器可以从注册中心数据库中获取目标业务的多个应用的应用信息,其中,应用信息可以包括应用的标识、以及每个应用的下游应用的标识,注册中心数据库中包括多个业务的多个应用。业务服务器获取目标业务的多个应用的应用信息后,可以在多个应用中,确定当前应用待调用的下游应用。
76.s303、确定下游应用部署在目标机房中的多个目标部署设备中的版本号,版本号包括待发布版本的版本号。
77.确定当前应用待调用的下游应用后,业务服务器可以确定下游应用部署在目标机房中的多个目标部署设备中的版本号。
78.其中,多个目标部署设备属于目标机房中的目标部署单元,在本技术实施例中,一个服务器为应用部署的最小单元,一个物理单元中包括多个服务器,一个机房中可以包括多个物理单元。
79.s304、根据每个目标部署设备部署下游应用的版本号,确定多个目标部署设备中
部署的不同版本的下游应用的流量比例。
80.在本技术实施例中,不同版本的下游应用对应的流量比例不同,确定每个目标部署设备部署下游应用的版本号,业务服务器可以根据每个目标部署设备部署下游应用的版本号,确定多个目标部署设备中部署的不同版本的下游应用的流量比例。
81.s305、按照流量比例,调用多个目标部署设备中部署的下游应用的不同版本进行业务处理,得到业务处理结果。
82.业务服务器可以按照流量比例,调用多个目标部署设备中部署的下游应用的不同版本进行业务处理,得到业务处理结果。
83.示例性的,业务服务器可以按照x%的比例,将业务处理请求的流量路由至设备信息中包括v1版本号的目标部署设备,可以按照y%的比例,将业务处理请求的流量路由至设备信息中包括v2版本号的目标部署设备。其中,x%与y%的和为100%,例如,x可以为20,y可以为80,其中,v2为下游应用的待发布版本的版本号。
84.s306、根据业务处理结果,确定多个目标部署设备中部署的下游应用的待发布版本的测试结果,测试结果用于指示下游应用的待发布版本是否满足发布条件。
85.确定业务处理结果后,业务服务器可以根据业务处理结果,确定多个目标部署设备中部署的下游应用的待发布版本的测试结果,测试结果用于指示下游应用的待发布版本是否满足发布条件。
86.示例性的,若业务处理结果指示下游应用的待发布版本的处理结果指示业务处理请求的处理异常,即没有得到业务处理请求的正常处理结果(可以理解为下游应用的待发布版本未能正常响应业务处理请求的业务处理),则可以确定该下游应用的待发布版本的测试结果为异常,对应的,该测试结果即指示该下游应用的待发布版本不满足发布条件。
87.又例如,若业务处理结果指示下游应用的待发布版本的处理结果指示业务处理请求的处理正常,即该处理结果中包括业务处理请求的正常处理结果(例如某个响应值),则可以确定该下游应用的待发布版本的测试结果为正常,对应的,该测试结果即指示该下游应用的待发布版本满足发布条件。
88.在本实施例中,业务服务器可以通过当前应用获取目标业务对应的业务处理请求,然后根据目标业务确定当前应用待调用的下游应用,并确定下游应用在多个目标部署设备中的版本号,根据每个目标部署设备部署下游应用的版本号,确定多个目标部署设备中部署的不同版本的下游应用的流量比例,然后按照流量比例,调用多个目标部署设备中部署的下游应用的不同版本进行业务处理,得到业务处理结果。并根据业务处理结果,确定多个目标部署设备中部署的下游应用的待发布版本的测试结果,测试结果用于指示下游应用的待发布版本是否满足发布条件。若满足发布条件,则可以将下游应用的待发布版本发布,本技术可以满足组件级应用的多个微服务应用部署在不同机房的不同设备上的场景中的新版本发布,提高了分布式应用的新版本发布的效率。
89.下面,通过实施例二对本技术提供的另一种分布式应用的发布方法进行说明。
90.图4为本技术实施例二提供的另一种分布式应用的发布方法的流程示意图,该方法可以由业务服务器执行,也可以由设置在业务服务器中的分布式应用的发布装置执行,该装置可以是芯片、也可以是芯片模组、还可以是ide等,以下以业务服务器为例,业务服务器中部署有目标灰度环境的预设入口应用,参考图4,该方法包括如下步骤:
91.s401、通过当前应用获取目标业务对应的业务处理请求。
92.s402、根据目标业务,确定当前应用待调用的下游应用。
93.在s401和s402的具体描述可以参考上述实施例,这里不再赘述。
94.s403、确定下游应用部署在目标机房中的多个目标部署设备中的版本号,版本号包括待发布版本的版本号。
95.在一种可能的实现方式中,业务服务器可以从注册中心数据库中获取下游应用部署在多个机房中的多个部署设备中的版本号。具体的,业务服务器从注册中心数据库中获取下游应用在多个物理单元中的多个部署设备的设备信息,每个设备信息中可以包括其部署的下游应用的版本号。
96.在一种可能的实现方式中,业务服务器可以从注册中心数据库中获取下游应用的在多个物理单元中的多个部署设备的设备信息,然后根据目标路由规则中的目标物理单元的标识,从多个物理单元中确定目标物理单元,然后将目标物理单元中的部署设备确定目标部署设备。
97.可以理解,多个物理单元可以属于同一个机房,也可以分别属于不同机房。
98.s404、获取至少一个路由规则,每个路由规则中包括下游应用的多个版本号、以及每个版本号对应的流量比例。
99.业务服务器可以获取至少一个路由规则。
100.在一种可能的实现方式中,业务服务器可以存储有至少一个路由规则,至少一个路由规则是运维服务器发送的。路由规则中包括下游应用的多个版本号、以及每个版本号对应的流量比例。
101.s405、在至少一个路由规则中,确定目标路由规则。
102.业务服务器存储有至少一个路由规则,业务服务器可以从至少一个路由规则中确定目标路由规则。
103.在一种可能的实现方式中,业务服务器可以确定至少一个路由规则的优先级,具体的,每个路由规则中包括优先级的值,例如,优先级的值通过数字表示,值越小,优先级越高。然后业务服务器可以将至少一个路由规则中优先级最高的路由规则为确定目标路由规则。
104.s406、根据多个目标部署设备部署下游应用的版本号,在目标路由规则中,确定下游应用在多个目标部署设备中的流量比例。
105.确定目标路由规则后,业务服务器可以基于目标路由规则中下游应用的多个版本号、以及在每个版本号对应的流量比例,根据每个目标部署设备中部署的下游版本的版本号,确定下游应用在多个目标部署设备的流量比例。
106.示例性的,目标路由规则中包括下游应用的两个版本:v1和v2,其中,v1对应的流量比例为20%,v2对应的流量比例为80%,例如,有10个目标部署设备:a1、a2、a3、a4、a5、a6、a7、a8、a9和a10,其中,4个目标部署设备(a1、a2、a3、a4)部署的下游应用的版本为v1,6个(a5、a6、a7、a8、a9、a10)目标部署设备部署的下游应用的版本为v2,那么,业务服务器可以确定这4个(a1、a2、a3、a4)目标部署设备对应的流量比例为20%,这6个(a5、a6、a7、a8、a9、a10)目标部署设备对应的流量比例为80%。
107.s407、按照流量比例,调用多个目标部署设备中部署的下游应用的不同版本进行
业务处理,得到业务处理结果。
108.确定流量比例后,业务服务器可以调用多个目标部署设备中部署的下游应用的不同版本进行业务处理,得到业务处理结果。
109.以s406中的示例为例,业务服务器可以将业务处理请求的20%的流量路由上述4个目标部署设备中(a1、a2、a3、a4),同时将业务处理请求的80%的流量路由上述6个目标部署设备中(a5、a6、a7、a8、a9、a10)。
110.在一种可能的实现方式中,若多个目标部署设备中的第一部署设备中部署的下游应用的待发布版本的测试结果指示第一部署设备中部署的下游应用的待发布版本不满足发布条件,业务服务器可以向下游应用所在的第一部署设备发送指示信息,指示信息用于指示第一部署设备对下游应用执行版本回滚操作,将下游应用的待发布版本回滚到待发布版本的前一个版本,下游应用的前一个版本用于为业务处理请求提供服务,可以避免下游应用出现异常,中断服务。
111.在本实施例中,业务服务器可以通过当前应用获取目标业务对应的业务处理请求,然后根据目标业务确定当前应用待调用的下游应用,并确定下游应用在多个目标部署设备中的版本号。然后获取至少一个路由规则,并在至少一个路由规则中,确定目标路由规则,根据每个目标部署设备的设备类型,在目标路由规则中,确定多个目标部署设备中部署的不同版本的下游应用的流量比例,然后按照流量比例,调用多个目标部署设备中部署的下游应用的不同版本进行业务处理,得到业务处理结果。并根据业务处理结果,确定多个目标部署设备中部署的下游应用的待发布版本的测试结果,测试结果用于指示下游应用的待发布版本是否满足发布条件。若满足发布条件,则可以将下游应用的待发布版本发布,本技术可以满足组件级应用的多个微服务应用部署在不同机房的不同设备上的场景中的新版本发布,提高了分布式应用的新版本发布的效率。
112.下面,对本技术实施例三提供的又一种分布式应用的发布方法进行说明。具体对运维服务器和业务服务器之间的交互进行说明。
113.图5为本技术实施例三提供的又一种分布式应用的发布方法的信令流程图,参考图5,该方法包括如下步骤:
114.s501、运维服务器显示创建路由规则界面。
115.运维管理员可以在相应的界面点击新建路由规则,跳转到创建路由规则页面。
116.s502、运维服务器在创建路由规则界面,创建路由规则。
117.运维管理员通过运维服务器在创建路由规则界面,创建路由规则,路由规则中包括下游应用的多个版本号、以及每个版本号对应的流量比例。
118.s503、运维服务器确定路由规则对应的业务服务器。
119.在一种可能的实现方式中,路由规则中还可以包括调用方参数,即运维服务器可以根据该调用方参数确定调用目标应用的预设应用,然后将预设应用所在的部署设备,确定为路由规则对应的业务服务器,调用方参数包括预设应用的应用类型。
120.其中,若目标应用的类型为网关应用,预设应用为目标应用所在组件中的非网关应用、目标应用所在组件的网关应用、以及指定应用中的任意一个。也就是说,若目标应用的类型为网关应用,则可以向目标应用所在组件中的所有非网关应用、目标应用所在组件的网关应用、以及指定应用中的任意一个应用所在是部署设备发送路由规则。
121.若目标应用的类型为非网关应用,预设应用为目标应用所在组件中的非网关应用或者目标应用所在组件的网关应用。也就是说,若目标应用的类型为非网关应用,则可以向目标应用所在组件中的非网关应用或者目标应用所在组件的网关应用所在是部署设备发送路由规则。
122.具体的,可以通过预设标签来确定目标应用所在组件中的所有非网关应用、目标应用所在组件的网关应用、以及指定应用,且目标应用所在组件中的所有非网关应用、目标应用所在组件的网关应用、以及指定应用所在的设备为指定的物理单元中的设备。
123.示例性的,如图6所示,图6为创建路由规则的界面示意图,调用方参数中的预设应用的应用类型,可以是组件、应用或者自定义应用,每个应用类型包括匹配关系、以及标签值,匹配关系为等于、不等于、包含和不包含中的任意一种。
124.对于应用类型为组件的选项,匹配关系可以是等于,标签值可以是该组件的名称。
125.对于应用类型为应用的选项,匹配关系可以是等于,标签值可以是该应用的名称。
126.对于应用类型为自定义应用的选项,匹配关系可以是等于、不等于、包含和不包含中的任意一种,标签值可以是预设标签值,例如tag1,即应用信息中等于、不等于、包含或者不包含tag1的应用为自定义应用。可以理解自定义应用为上述指定应用。
127.例如,路由规则中的应用类型为组件,标签值可以设置组件的名称1,匹配关系为等于,那么,预设应用为名称1的所有非网关应用。
128.又例如,路由规则中的应用类型为应用,标签值可以设置应用的名称2,匹配关系为等于,那么,预设应用为应用名称为名称2的应用。
129.再例如,路由规则中的应用类型为自定义应用,由于该应用为指定应用,标签值可以是预设标签值,例如tag1,匹配关系为不等于,那么,例如某个应用的应用信息中包括tag2和tag3,而tag2和tag3均不等于tag1,即应用信息中不存在tag1,则可以确定该应用为预设应用。
130.在图6中,路由规则中还可以包括规则名称、规则的可用状态(可用或者不可用)、以及优先级。
131.在一种可能的实现方式中,路由规则中还可以包括目标应用的应用信息,该应用信息包括目标应用所在的组件的名称、目标应用的应用名称以及目标应用所在的物理单元的标识。图6中的目的地参数即为目标应用的应用信息,可以根据目标应用所在的部署设备的设备信息中的部署目标应用的版本号,确定对应的流量比例,图6中的v2版本可以是待发布版本。
132.以图6为例,若目标应用所在的部署设备的设备信息中的部署目标应用的版本号为v1,则该设备对应的流量比例为80%,若目标应用所在的部署设备的设备信息中的部署目标应用的版本号v2,则该设备对应的流量比例为20%。按照流量比例调用目标应用具体可以参考上述实施例二,这里不再赘述,实施例二中的下游应用可以理解为本实施例中的目标应用。
133.可以理解,运维人员在通过运维服务器创建路由规则时,可以根据部署设备部署的版本号,设置相应的流量比例,例如可以使得部署了待发布版本的下游应用的设备处理的业务处理请求的数量小于部署了旧版本的下游应用的设备。可以理解,也会在目标应用所部属设备的设备信息中包括其部署的应用的版本号,该版本号可以用于确定流量比例。
134.s504、运维服务器向路由规则对应的业务服务器发送路由规则。
135.在本实施例中,运维服务器可以创建路由规则,然后确定路由规则对应的业务服务器,并向路由规则对应的业务服务器发送路由规则,使得业务服务器可以根据路由规则对业务处理请求进行应用的调用处理。本技术可以根据下游应用的版本号实现业务处理请求的流量的分流,以实现调用下游应用的待发布版本,本技术可以满足组件级应用的多个微服务应用部署在不同机房的不同设备上的场景中的新版本发布,提高了分布式应用的新版本发布的效率。
136.图7为本技术实施例四提供的一种分布式应用的发布装置的结构示意图。参考图7,该装置70包括:获取模块701,第一确定模块702、第二确定模块703、第三确定模块704、处理模块705和第四处理模块706。
137.获取模块701,用于通过当前应用获取目标业务对应的业务处理请求。
138.第一确定模块702,用于根据目标业务,确定当前应用待调用的下游应用。
139.第二确定模块703,用于确定下游应用部署在目标机房的多个目标部署设备中的版本号,版本号包括待发布的版本号。
140.第三确定模块704,用于根据每个目标部署设备部署下游应用的版本号,确定多个目标部署设备中部署的不同版本的下游应用的流量比例。
141.处理模块705,用于按照流量比例,调用多个目标部署设备中部署的下游应用的不同版本进行业务处理,得到业务处理结果。
142.第四确定模块706,用于根据业务处理结果,确定多个目标部署设备中部署的下游应用的待发布版本的测试结果,测试结果用于指示下游应用的待发布版本是否满足发布条件。
143.在一种可能的实现方式中,第三确定模块704具体用于:
144.获取至少一个路由规则,每个路由规则中包括下游应用的多个版本号、以及每个版本号对应的流量比例。
145.在至少一个路由规则中,确定目标路由规则。
146.根据多个目标部署设备部署下游应用的版本号,在目标路由规则中,确定多个目标部署设备部署的不同版本的下游应用的流量比例。
147.在一种可能的实现方式中,第三确定模块704具体用于:
148.确定每个路由规则的优先级。
149.将至少一个路由规则中,优先级最高的路由规则确定为目标路由规则。
150.在一种可能的实现方式中,
151.在一种可能的实现方式中,第二确定模块703具体用于:
152.从注册中心数据库中获取下游应用部署在多个机房中的多个部署设备中的版本号。
153.从下游应用部署在多个机房中的多个部署设备中的版本号中,确定下游应用部署在目标机房中的多个目标部署设备中的版本号。
154.在一种可能的实现方式中,装置70还包括发送模块。
155.发送模块具体用于:
156.若多个目标部署设备中的第一部署设备中部署的下游应用的待发布版本的测试
结果指示第一部署设备中部署的下游应用的待发布版本不满足发布条件,向第一部署设备发送指示信息,指示信息用于指示第一部署设备对下游应用执行版本回滚操作,将第一标部署设备中部署的下游应用的待发布版本回滚到待发布版本的前一个版本,下游应用的前一个版本用于为业务处理请求提供服务。
157.本实施例的装置,可用于执行上述方法实施例的技术方案,具体实现方式和技术效果类似,这里不再赘述。
158.图8为本技术实施例五提供的一种分布式应用的发布装置的结构示意图。参考图8,该装置80包括:显示模块901,创建模块902、确定模块903、和发送模块904。
159.显示模块901,用于显示创建路由规则界面。
160.创建模块902,用于在创建路由规则界面,创建路由规则,路由规则中包括路由规则中包括目标应用的多个版本号、以及每个版本号对应的流量比例。
161.确定模块803,用于确定路由规则对应的业务服务器。
162.发送模块804,用于向业务服务器发送路由规则。
163.在一种可能的实现方式中,路由规则还包括调用方参数。
164.确定模块803具体用于:
165.根据调用方参数,确定调用目标应用的预设应用,调用方参数包括预设应用的应用类型。
166.将预设应用所在的部署设备,确定为路由规则对应的业务服务器。
167.在一种可能的实现方式中,若目标应用的类型为网关应用,预设应用为目标应用所在组件中的非网关应用、目标应用所在组件的网关应用、以及指定应用中的任意一个。
168.若目标应用的类型为非网关应用,预设应用为目标应用所在组件中的非网关应用或者目标应用所在组件的网关应用。
169.本实施例的装置,可用于执行上述方法实施例的技术方案,具体实现方式和技术效果类似,这里不再赘述。
170.图9为本技术实施例六提供的一种电子设备的结构示意图,如图9所示,电子设备90可以包括:至少一个处理器901和存储器902。
171.存储器902,用于存放程序。具体地,程序可以包括程序代码,程序代码包括计算机执行指令。
172.存储器902可能包含随机存取存储器(random access memory,ram),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
173.处理器901用于执行存储器902存储的计算机执行指令,以实现前述方法实施例所描述的方法。其中,处理器901可能是一个中央处理器(central processing unit,cpu),或者是特定集成电路(application specific integrated circuit,asic),或者是被配置成实施本技术实施例的一个或多个集成电路。
174.可选的,电子设备90还可以包括:通信接口903。在具体实现上,如果通信接口903、存储器902和处理器901独立实现,则通信接口903、存储器902和处理器901可以通过总线相互连接并完成相互间的通信。总线可以是工业标准体系结构(industry standard architecture,isa)总线、外部设备互连(peripheral component,pci)总线或扩展工业标准体系结构(extended industry standard architecture,eisa)总线等。总线可以分为地
址总线、数据总线、控制总线等,但并不表示仅有一根总线或一种类型的总线。
175.可选的,在具体实现上,如果通信接口903、存储器902和处理器901集成在一块芯片上实现,则通信接口903、存储器902和处理器901可以通过内部接口完成通信。
176.电子设备90可以为芯片、芯片模组、ide、服务器等。
177.本实施例的电子设备,可用于执行上述方法实施例的技术方案,具体实现方式和技术效果类似,这里不再赘述。
178.本技术实施例七提供了一种计算机可读存储介质,该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、ram、磁盘或者光盘等各种可以存储计算机执行指令的介质,具体的,该计算机可读存储介质中存储有计算机执行指令,该计算机执行指令被计算机执行时使得上述方法实施例所示的技术方案被执行,具体实现方式和技术效果类似,这里不再赘述。
179.本技术实施例八提供一种计算机程序产品,包括计算机程序,计算机程序被计算机执行时,使得上述方法实施例所示的技术方案被执行,具体实现方式和技术效果类似,这里不再赘述。
180.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本技术的真正范围和精神由下面的权利要求书指出。
181.应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术的范围仅由所附的权利要求书来限制。
技术特征:
1.一种分布式应用的发布方法,其特征在于,应用于业务服务器,所述方法包括:通过当前应用获取目标业务对应的业务处理请求;根据所述目标业务,确定所述当前应用待调用的下游应用;确定所述下游应用部署在目标机房中的多个目标部署设备中的版本号,所述版本号包括待发布版本的版本号;根据每个目标部署设备部署所述下游应用的版本号,确定所述多个目标部署设备中部署的不同版本的下游应用的流量比例;按照所述流量比例,调用所述多个目标部署设备中部署的下游应用的不同版本进行业务处理,得到业务处理结果;根据所述业务处理结果,确定所述多个目标部署设备中部署的下游应用的待发布版本的测试结果,所述测试结果用于指示所述下游应用的所述待发布版本是否满足发布条件。2.根据权利要求1所述的方法,其特征在于,所述根据每个部署设备部署所述下游应用的版本号,确定所述多个目标部署设备部署的不同版本的下游应用的流量比例,包括:获取至少一个路由规则,每个路由规则中包括所述下游应用的多个版本号、以及每个版本号对应的流量比例;在所述至少一个路由规则中,确定目标路由规则;根据所述多个目标部署设备部署所述下游应用的版本号,在所述目标路由规则中,确定所述多个目标部署设备部署的不同版本的下游应用的流量比例。3.根据权利要求2所述的方法,其特征在于,在所述至少一个路由规则中,确定目标路由规则,包括:确定每个路由规则的优先级;将所述至少一个路由规则中,优先级最高的路由规则确定为所述目标路由规则。4.根据权利要求2或3所述的方法,其特征在于,所述确定所述下游应用部署在多个目标部署设备中的版本号,包括:从注册中心数据库中获取所述下游应用部署在多个机房中的多个部署设备中的版本号;从所述下游应用部署在多个机房中的多个部署设备中的版本号中,确定所述下游应用部署在目标机房中的多个目标部署设备中的版本号。5.根据权利要求4所述的方法,其特征在于,若所述多个目标部署设备中的第一部署设备中部署的下游应用的待发布版本的测试结果指示所述第一部署设备中部署的所述下游应用的待发布版本不满足发布条件,所述方法还包括:向所述第一部署设备发送指示信息,所述指示信息用于指示所述第一部署设备对所述下游应用执行版本回滚操作,将所述第一标部署设备中部署的所述下游应用的待发布版本回滚到所述待发布版本的前一个版本,所述下游应用的所述前一个版本用于为所述业务处理请求提供服务。6.一种分布式应用的发布方法,其特征在于,应用于运维服务器,所述方法包括:显示创建路由规则界面;在所述创建路由规则界面,创建路由规则,所述路由规则中包括目标应用的多个版本号、以及每个版本号对应的流量比例;
确定所述路由规则对应的业务服务器;向所述业务服务器发送所述路由规则。7.根据权利要求6所述的方法,其特征在于,所述路由规则还包括调用方参数;所述确定所述路由规则对应的业务服务器,包括:根据所述调用方参数,确定调用所述目标应用的预设应用,所述调用方参数包括所述预设应用的应用类型;将所述预设应用所在的部署设备,确定为所述路由规则对应的业务服务器。8.根据权利要求7所述的方法,其特征在于,若所述目标应用的类型为网关应用,所述预设应用为所述目标应用所在组件中的非网关应用、所述目标应用所在组件的网关应用、以及指定应用中的任意一个;若所述目标应用的类型为非网关应用,所述预设应用为所述目标应用所在组件中的非网关应用或者所述目标应用所在组件的网关应用。9.一种分布式应用的发布装置,其特征在于,包括:获取模块,用于通过当前应用获取目标业务对应的业务处理请求;第一确定模块,用于根据所述目标业务,确定所述当前应用待调用的下游应用;第二确定模块,用于确定所述下游应用部署在多个目标部署设备中的版本号,所述版本号包括待发布的版本号;第三确定模块,用于根据每个目标部署设备部署所述下游应用的版本号,确定所述多个目标部署设备中部署的不同版本的下游应用的流量比例;处理模块,用于按照所述流量比例,调用所述多个目标部署设备中部署的下游应用的不同版本进行业务处理,得到业务处理结果;第四确定模块,用于根据所述业务处理结果,确定所述多个目标部署设备中部署的下游应用的待发布版本的测试结果,所述测试结果用于指示所述下游应用的所述待发布版本是否满足发布条件。10.一种分布式应用的发布装置,其特征在于,包括:显示模块,用于显示创建路由规则界面;创建模块,用于在所述创建路由规则界面,创建路由规则,所述路由规则中包括多个设备类型、以及目标应用在每个设备类型对应的流量比例;确定模块,用于确定所述路由规则对应的业务服务器;发送模块,用于向所述业务服务器发送所述路由规则。11.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;所述存储器存储计算机执行指令;所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1-5任一项所述的分布式应用的发布方法,或者,权利要求6-8任一项所述的分布式应用的发布方法。12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-5任一项所述的分布式应用的发布方法,或者,权利要求6-8任一项所述的分布式应用的发布方法。
技术总结
本申请提供的分布式应用的发布方法、装置、设备及存储介质,可用于分布式领域。该方法包括:业务服务器可以通过当前应用获取目标业务对应的业务处理请求,根据目标业务确定当前应用待调用的下游应用,根据每个目标部署设备部署下游应用的版本号,确定多个目标部署设备中部署的不同版本的下游应用的流量比例,按照流量比例,调用多个目标部署设备中部署的下游应用的不同版本进行业务处理,得到业务处理结果。根据业务处理结果,确定多个目标部署设备中部署的下游应用的待发布版本的测试结果,测试结果用于指示下游应用的待发布版本是否满足发布条件。若满足,则可以将下游应用的待发布版本发布,本申请提高了分布式应用的新版本发布的效率。发布的效率。发布的效率。
技术研发人员:李艳静 张煌辉 薛欣妹 李小平 朱伟 孙鹏 周海静 余越
受保护的技术使用者:中国银行股份有限公司
技术研发日:2023.05.30
技术公布日:2023/8/28
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/