CN116643787A - 分布式应用的发布方法、装置、设备及存储介质 - Google Patents

分布式应用的发布方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN116643787A
CN116643787A CN202310629152.7A CN202310629152A CN116643787A CN 116643787 A CN116643787 A CN 116643787A CN 202310629152 A CN202310629152 A CN 202310629152A CN 116643787 A CN116643787 A CN 116643787A
Authority
CN
China
Prior art keywords
application
gray
service
service processing
calling
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
Application number
CN202310629152.7A
Other languages
English (en)
Inventor
李艳静
张煌辉
薛欣妹
李小平
朱伟
孙鹏
周海静
余越
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bank of China Ltd
Original Assignee
Bank of China Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Bank of China Ltd filed Critical Bank of China Ltd
Priority to CN202310629152.7A priority Critical patent/CN116643787A/zh
Publication of CN116643787A publication Critical patent/CN116643787A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供的一种分布式应用的发布方法、装置、设备及存储介质,可用于分布式领域。该方法包括:业务服务器可以接收的目标业务对应的业务处理请求,然后确定目标业务对应的多个业务应用的标识和灰度信息,确定非灰度应用和灰度应用,确定非灰度应用和灰度应用之间的应用调用顺序,根据应用调用顺序,调用非灰度应用和灰度应用对业务处理请求进行业务处理,得到业务处理结果实现,根据业务处理结果,确定灰度应用的测试结果,测试结果用于指示灰度应用的待发布版本是否满足发布条件。若满足发布条件,则可以将灰度应用的待发布版本发布,本申请可以满足分布式应用中的多个应用同时需要发布新版本的需求,提高了分布式应用的新版本发布的效率。

Description

分布式应用的发布方法、装置、设备及存储介质
技术领域
本申请涉及分布式领域,尤其涉及一种分布式应用的发布方法、装置、设备及存储介质。
背景技术
随着分布式***架构的普及,越来越多的企业将应用***从单体应用转向了分布式应用,多个***间协调工作,复杂度增加。
而且随着业务的快速发展,分布式应用研发新版本发布的频率和次数都明显增高,可以通过灰度发布方法对分布式应用进行新版本发布,目前,灰度发布主要针对单个应用(即分布式应用中的单个应用),即在已存在的稳定版本(老版本)的应用之外,额外部署一个小规模的灰度应用(新版本),让一部分用户继续用老版本,另一部分用户开始用新版本,如果用户对新版本使用的反应良好,则逐步扩大范围,把所有用户都迁移到新版本。
但是,无法满足分布式应用中的多个应用同时需要发布新版本的需求,使得分布式应用的新版本发布效率较低。
发明内容
本申请提供一种分布式应用的发布方法、装置、设备及存储介质,用以解决相关技术中无法满足分布式应用中的多个应用同时需要发布新版本的需求,使得分布式应用的新版本发布效率较低的问题。
第一方面,本申请提供一种分布式应用的发布方法,应用于业务服务器,所述方法包括:
接收目标业务对应的业务处理请求;
确定所述目标业务对应的多个业务应用的标识和灰度信息,所述灰度信息包括至少一个灰度应用的标识,所述灰度应用为所述多个业务应用中存在待发布版本的应用;
根据所述多个业务应用的标识和所述灰度信息,确定非灰度应用和所述至少一个灰度应用;
确定所述非灰度应用和所述至少一个灰度应用之间的应用调用顺序;
根据所述应用调用顺序,调用所述非灰度应用和所述至少一个灰度应用对所述业务处理请求进行业务处理,得到业务处理结果;
根据所述业务处理结果,确定所述至少一个灰度应用的测试结果,所述测试结果用于指示所述灰度应用的所述待发布版本是否满足发布条件。
第二方面,本申请提供一种分布式应用的发布装置,包括:
接收模块,用于接收目标业务对应的业务处理请求;
第一确定模块,用于确定所述目标业务对应的多个业务应用的标识和灰度信息,所述灰度信息包括至少一个灰度应用的标识,所述灰度应用为所述多个业务应用中存在待发布版本的应用;
第二确定模块,用于根据所述多个业务应用的标识和所述灰度信息,确定非灰度应用和所述至少一个灰度应用;
第三确定模块,用于确定所述非灰度应用和所述至少一个灰度应用之间的应用调用顺序;
处理模块,用于根据所述应用调用顺序,调用所述非灰度应用和所述至少一个灰度应用对所述业务处理请求进行业务处理,得到业务处理结果;
第四确定模块,用于根据所述业务处理结果,确定所述至少一个灰度应用的测试结果,所述测试结果用于指示所述灰度应用的所述待发布版本是否满足发布条件。
第三方面,本申请提供一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如第一方面所述的分布式应用的发布方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被计算机执行时用于实现如第一方面所述的分布式应用的发布方法。
第五方面,本申请提供一种计算机程序产品,包括计算机程序,所述计算机程序被计算机执行时用于实现第一方面所述的分布式应用的发布方法。
本申请提供的一种分布式应用的发布方法、装置、设备及存储介质,业务服务器可以接收的目标业务对应的业务处理请求,然后确定目标业务对应的多个业务应用的标识和灰度信息,然后根据多个业务应用的标识和灰度信息,确定非灰度应用和至少一个灰度应用,再确定非灰度应用和至少一个灰度应用之间的应用调用顺序,并根据应用调用顺序,调用非灰度应用和至少一个灰度应用对业务处理请求进行业务处理,得到业务处理结果实现,根据业务处理结果,确定至少一个灰度应用的测试结果,测试结果用于指示灰度应用的待发布版本是否满足发布条件。若满足发布条件,则可以将灰度应用的待发布版本发布,本申请可以满足分布式应用中的多个应用同时需要发布新版本的需求,提高了分布式应用的新版本发布的效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请适用的一种应用场景的示意图;
图2为本申请示例的一种应用之间的调用的示意图;
图3为本申请实施例一提供的一种分布式应用的发布方法的流程示意图;
图4为本申请实施例二提供的另一种分布式应用的发布方法的流程示意图;
图5为本申请实施例三提供的有一种分布式应用的发布方法的信令流程图;
图6为本申请示例的一种创建灰度环境信息的界面示意图;
图7为本申请示例的一种创建路由规则的界面示意图;
图8为本申请实施例四提供的一种分布式应用的发布装置的结构示意图;
图9为本申请实施例五提供的一种电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
需要说明的是,本申请应用***的版本发布方法、装置、设备及存储介质可用于分布式领域,也可用于除分布式领域之外的任意领域,本申请应用***的版本发布方法、装置、设备及存储介质的应用领域不做限定。
随着用户的迅速增长和业务的快速发展,开发研发新版本上线的迭代周期越来越快,一方面要求为用户提供稳定的服务,一方面要求进行快速业务迭代。
目前,可以通过灰度发布方法对分布式应用进行新版本发布,目前,灰度发布主要针对单个应用(即分布式应用中的单个应用),即在已存在的稳定版本(老版本)的应用之外,额外部署一个小规模的灰度应用(新版本),让一部分用户继续用老版本,另一部分用户开始用新版本,如果用户对新版本使用的反应良好,则逐步扩大范围,把所有用户都迁移到新版本。
但是,灰度发布方法,每次只能针对单个应用进行灰度发布,当分布式应用中的多个应用同时需要发布新版本时,使得分布式应用的新版本发布效率较低。
所以,本申请提供一种分布式应用的发布方法,按照应用的调用关系,调用灰度应环境中的最新版本的应用(即灰度应用)以及非灰度环境的老版本的应用(即非灰度应用)中,使得非灰度应用和灰度应用对业务处理请求进行业务处理,得到业务处理结果,并基于业务处理结果可以确定灰度应用的待发布版本是否满足发布条件,若满足,则确定可以进行发布,可以满足分布式应用中的多个应用同时需要发布新版本的需求,提高了分布式应用的新版本发布的效率。
为了更清楚的说明本申请,下面,对本申请实施例涉及的名词作相关介绍:
一个应用程序通常可以通过多个组件构成,每个组件代表不同的功能模块(在本申请中可以称为业务),每个组件中包括多个微服务应用,例如一个应用程序中包括“存款业务”、“***业务”等功能模块,“存款业务”中还包括多个微服务应用为用户提供服务。
本申请的应用可以是微服务应用,在本申请中可以称为业务应用。
灰度应用:存在待发布的新版本的应用,灰度应用部署在灰度环境中,该灰度环境也可以称为泳道,灰度环境中部署的应用均为待发布的新版本的应用,灰度应用也可以称为灰度业务应用。
非灰度应用:是指不存在待发布的新版本的应用,非灰度应用部署在非灰度环境中,非灰度环境中部署的应用为已经正常发布的应用,非灰度应用也可以称为非灰度业务应用。
网关应用:可以是组件和组件之间用于通信的应用,即组件和组件之间的调用,需要通过网关应用进行调用。
非网关应用:是指组件中的应用,即普通的微服务应用。
为了便于理解,下面结合图1的示例,对本申请实施例所适用的应用场景进行说明。
图1为本申请适用的一种应用场景的示意图,请参见图1,包括:运维服务器101、业务服务器A102、业务服务器B103、以及业务服务器C104,运维服务器101、业务服务器A102、业务服务器B103、以及业务服务器C104之间可以通过互联网进行通信。
在一种可能的实现方式中,业务服务器A102中部署有灰度业务应用A(即业务应用A的待发布版本),业务服务器B103中部署有非灰度应用(即业务应用B的已发布版本,业务应用B不存在待发布版本),业务服务器C104中部署有灰度业务应用C(即业务应用C的待发布版本),其中,业务应用A、业务应用B和业务应用C之间存在调用关系,例如为应用调用顺序为A、B、C,即A调用B,B调用C。
运维服务器101可以用于灰度环境的建立、以及路由规则的建立。在一种可能的实现方式中,运维服务器101可以向预设入口应用所在的服务器发送灰度环境的配置以及路由规则,示例性的,若预设入口应用可以是非网关应用,也可以是网关应用,则预设入口应用所在的服务器可以是业务服务器A102。
运维服务器101还可以向业务服务器A102、和业务服务器C104灰度环境的配置,即实现将业务服务器A102、和业务服务器C104中部署的待发布版本的应用添加到灰度环境中。可以理解,图1中表示的应用服务器处于灰度环境中,是指应用服务器中部署的应用处于灰度环境中。
可以理解,业务服务器A102、业务服务器B103、以及业务服务器C104的数量均可以为多个,图中未示出。
示例性的,为了更清楚描述应用之间的调用,请参考图2,图2对应用之间的调用进行说明。通过预设入口应用的路由规则对调用方的业务处理请求进行验证,验证调用方是否具备调用灰度环境中的应用的权限,若具备权限,则按照应用调用顺序将业务处理请求的流量路由至灰度环境中的应用,以实现对灰度环境中的应用的调用。运维平台可以向灰度应用所在的服务器发送灰度环境的配置,并向预设入口应用发送灰度环境的配置以及路由规则,使得预设入口应用可以根据灰度环境的配置以及路由规则对调用方1和调用方2的业务处理请求进行处理,以实现调用灰度环境的应用或者非灰度环境的应用。图2中虚线表示对非灰度环境的应用(即非灰度应用)的调用,实线表示对灰度环境的应用(即灰度应用)的调用。
在一种可能的实现方式中,调用方1满足调用灰度环境中的应用的条件,调用方2不满足调用灰度环境中的应用的条件,若预设入口应用为网关应用,则调用方1和调用方2可以是其他组件的应用,若预设入口应用为非网关应用,则调用方1和调用方2可以是业务应用A的上游应用。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图3为本申请实施例一提供的一种分布式应用的发布方法的流程示意图,该方法可以由业务服务器执行,也可以由设置在业务服务器中的分布式应用的发布装置执行,该装置可以是芯片、也可以是芯片模组、还可以是集成开发环境(integrated developmentenvironment,IDE)等,以下以业务服务器为例,参考图3,该方法包括如下步骤:
S301、接收目标业务对应的业务处理请求。
业务服务器可以接收到调用方发送的目标业务对应的业务处理请求。业务处理请求的个数可以是一个或者多个。
在一种可能的实现方式中,业务服务器中部署有预设入口应用,业务服务器可以通过预设入口应用接收目标业务对应的业务处理请求,该预设入口应用中包括至少一个路由规则,其中,每个路由规则中包括灰度访问条件,该灰度访问条件用于对业务处理请求进行初步验证,验证该请求对应的调用方具备访问目标灰度环境的权限。
S302、确定目标业务对应的多个业务应用的标识和灰度信息,灰度信息包括至少一个灰度应用的标识,灰度应用为多个业务应用中存在待发布版本的应用。
接收到业务处理请求后,业务服务器可以确定目标业务对应的多个业务应用的标识和灰度信息,灰度信息中包括至少一个灰度应用的标识,灰度应用为多个业务应用中存在待发布版本的应用。
示例性的,业务服务器可以从注册中心数据库中获取目标业务的多个业务应用的应用信息,然后根据还应用信息确定灰度信息,其中,应用信息可以包括业务应用的标识,例如应用信息还可以包括目标灰度环境的标识,若某个业务应用的应用信息包括目标灰度环境的标识,则表示该业务应用为灰度应用。
在一种可能的实现方式中,业务服务器通过预设入口应用获取业务处理请求,则目标业务的多个业务应用可以是预设入口应用的下游应用。
S303、根据多个业务应用的标识和灰度信息,确定非灰度应用和至少一个灰度应用。
确定多个业务应用的标识和灰度信息后,业务服务器可以根据多个业务应用的标识和灰度信息确定非灰度应用和至少一个灰度应用。
示例性的,业务服务器可以判断每个业务应用的标识是否为灰度信息中的灰度应用的标识,若某个业务应用的标识为灰度信息中的灰度应用的标识,则确定该业务应用为灰度应用。
S304、确定非灰度应用和至少一个灰度应用之间的应用调用顺序。
由于多个业务应用之间存在调用顺序,业务服务器可以确定非灰度应用和至少一个灰度应用之间的应用调用顺序。
示例性的,业务服务器可以根据业务应用的应用信息确定应用调用顺序,每个业务应用的应用信息中包括该业务应用的下游应用的信息,例如下游应用的标识或者下游应用所在部署设备的标识等,还可以是其他信息用于标识下游应用。
S305、根据应用调用顺序,调用非灰度应用和至少一个灰度应用对业务处理请求进行业务处理,得到业务处理结果。
业务服务器可以根据应用调用顺序,调用非灰度应用和至少一个灰度应用对业务处理请求进行业务处理,得到业务处理结果。
示例性的,以图2为例,业务应用A和业务应用C为灰度应用,业务应用B为非灰度应用,业务服务器可以将业务处理请求的流量路由至目标灰度环境中的业务应用A,然后通过将业务处理请求的流量从业务应用A路由至非灰度环境中的业务应用B,然后通过目标灰度环境中的业务应用C接收来自业务应用B的流量,以实现对业务应用A、业务应用B和业务应用C的调用,对业务处理请求进行业务处理,得到业务处理结果,业务处理结果中包括业务应用A、业务应用B和业务应用C分别对业务处理请求的处理结果。
S306、根据业务处理结果,确定至少一个灰度应用的测试结果,测试结果用于指示灰度应用的待发布版本是否满足发布条件。
根据上述业务处理结果,业务服务器可以根据业务处理结果确定至少一个灰度应用的测试结果,测试结果用于指示灰度应用的待发布版本是否满足发布条件。
示例性的,若业务处理结果中的某个灰度应用的处理结果指示业务处理请求的处理异常,即没有得到业务处理请求的正常处理结果(可以理解为灰度应用未能正常响应业务处理请求的业务处理),则可以确定该灰度应用的测试结果为异常,对应的,该测试结果即指示该灰度应用的待发布版本不满足发布条件。
又例如,若业务处理结果中的某个灰度应用的处理结果指示业务处理请求的处理正常,即该处理结果中包括业务处理请求的正常处理结果(例如某个响应值),则可以确定该灰度应用的测试结果为正常,对应的,该测试结果即指示该灰度应用的待发布版本满足发布条件。
在本实施例中,业务服务器可以接收的目标业务对应的业务处理请求,然后确定目标业务对应的多个业务应用的标识和灰度信息,然后根据多个业务应用的标识和灰度信息,确定非灰度应用和至少一个灰度应用,再确定非灰度应用和至少一个灰度应用之间的应用调用顺序,并根据应用调用顺序,调用非灰度应用和至少一个灰度应用对业务处理请求进行业务处理,得到业务处理结果,根据业务处理结果,确定至少一个灰度应用的测试结果,测试结果用于指示灰度应用的待发布版本是否满足发布条件。若满足发布条件,则可以将灰度应用的待发布版本发布,本申请可以满足分布式应用中的多个应用同时需要发布新版本的需求,提高了分布式应用的新版本发布的效率。
下面,通过实施例二对本申请提供的另一种分布式应用的发布方法进行说明。
图4为本申请实施例二提供的另一种分布式应用的发布方法的流程示意图,该方法可以由业务服务器执行,也可以由设置在业务服务器中的分布式应用的发布装置执行,该装置可以是芯片、也可以是芯片模组、还可以是IDE等,以下以业务服务器为例,业务服务器中部署有目标灰度环境的预设入口应用,参考图4,该方法包括如下步骤:
S401、通过预设入口应用获取业务处理请求,预设入口应用中包括至少一个路由规则,其中,每个路由规则中包括灰度访问条件。
业务服务器可以通过预设入口应用获取业务处理请求,可以通过预设入口应用中的路由规则对业务处理请求进行验证,以验证业务处理请求的调用方是否具备调用目标灰度环境中的灰度应用的权限。将灰度应用与调用方进行隔离,避免调用方可以直接调用灰度应用,提高了应用的安全性,并且由于灰度应用处于测试阶段,可以调用灰度应用的调用方一般为运维人员制定的调用方,预设入口应用的设置可以进一步避免普通的调用方调用到灰度应用,影响使用体验。
S402、确定目标业务对应的多个业务应用的标识和灰度信息。
在一种可能的实现方式中,业务服务器可以从注册中心数据库中获取目标应用对应的应用列表,该应用列表中包括目标业务的多个业务应用的应用信息,应用信息中包括业务应用的标识,可选的,应用信息中还可能包括目标灰度环境的标识,以表示业务应用处于目标灰度环境中,即业务应用为灰度应用。则可以根据灰度应用的标识,确定灰度信息。
其中,注册中心数据库中包括多个应用的应用列表,示例性的,业务服务器可以根据目标业务的标识,从注册中心数据库中获取目标业务的应用列表。
在本实施例中,目标业务的多个业务应用可以是预设入口应用的下游应用,也就是说,业务服务器获取的目标业务的应用列表,可以是预设入口应用的下游应用列表。预设入口应用可以是网关应用,也可以是非网关应用,即目标业务对应的组件中的业务应用。
S403、根据多个业务应用的标识和灰度信息,确定非灰度应用和至少一个灰度应用。
S404、确定非灰度应用和至少一个灰度应用之间的应用调用顺序。
S405、对业务处理请求进行解析,确定业务处理请求中是否包括灰度调用参数。
若业务处理请求中包括灰度调用参数,则执行S407。
若业务处理请求中不包括灰度调用参数,则执行S406。
在一种可能的实现方式中,灰度调用参数可以通过预设标签值表示,例如预设标签值为tag1、tag2等。业务服务器可以对业务处理请求进行解析,若业务处理请求中包括灰度调用参数,则表示可以对业务处理请求进一步验证,其是否满足路由规则中的灰度访问条件,若满足,则说明业务处理请求的调用方具备访问灰度应用的权限。
需要说明的是,业务处理请求中携带待灰度调用参数,是业务应用存在待发布版本时,运维人员可以指定调用方,使得调用方对其发起的业务处理请求中标记上灰度调用参数。
S406、调用非灰度应用对业务处理请求进行业务处理,得到非灰度应用的业务处理结果。
S407、获取至少一个路由规则。
若业务处理请求中包括灰度调用参数,则可以获取业务服务器中存储的至少一个路由规则。以实现对灰度调用参数是否满足路由规则中的灰度访问条件,其中,至少一个路由规则是运维服务器创建完成后向业务服务器发送的。
S408、根据灰度调用参数、至少一个路由规则以及应用调用顺序,调用非灰度应用和至少一个灰度应用对业务处理请求进行业务处理,得到业务处理结果。
在一种可能的实现方式中,业务服务器可以确定至少一个路由规则的优先级,具体的,每个路由规则中包括优先级的值,例如,优先级的值通过数字表示,值越小,优先级越高。然后业务服务器可以将至少一个路由规则中优先级最高的路由规则为确定目标路由规则。
确定目标路由规则后,业务服务器可以确定业务处理请求中的灰度调用参数是否满足目标路由规则中的灰度访问条件,若灰度调用参数满足目标路由规则的灰度访问条件,则根据应用调用顺序,调用非灰度应用和至少一个灰度应用对业务处理请求进行业务处理,得到业务处理结果。
在一种可能的实现方式中,灰度访问条件可以包括多个预设调用标签,每个预设调用标签包括标签名、匹配关系、标签值以及规则关系,匹配关系为等于、不等于、包含和不包含中的任意一种,规则关系为全部标签匹配或者任意一个标签匹配。
业务服务器可以通过以下方式,确定业务处理请求中的灰度调用参数是否满足目标路由规则中的灰度访问条件:
若规则关系为全部标签匹配,则根据匹配关系确定灰度调用参数是否满足多个预设调用标签的标签值,若满足,则确定灰度调用参数满足灰度访问条件。
例如,多个预设调用标签的标签名为tag1、tag2和tag3,tag1对应的标签值为a,tag2对应的标签值为b,tag3对应的标签值为c,灰度调用参数中包括tag1、tag2和tag3,以及每个标签分别对应的参数值为a、b和c,匹配关系为等于,则可以确定灰度调用参数满足灰度调用条件。
又例如,多个预设调用标签的标签名为tag1、tag2和tag3,tag1对应的标签值为a,tag2对应的标签值为b,tag3对应的标签值为c,灰度调用参数中包括标签名tag1、tag2和tag3,以及tag1对应的参数值为a、b和c,tag2对应的参数值为b、c和d,tag3对应的参数值为c、d和e,匹配关系为包含,可知,灰度调用参数中的每个标签值均包含目标路由规则中的每个预设调用标签的标签值,则可以确定灰度调用参数满足灰度调用条件。
若规则关系为任意一个标签匹配,则根据匹配关系确定灰度调用参数是否满足多个预设调用标签的标签值中的任意一个标签值,若满足,则确定灰度调用参数满足灰度访问条件。即灰度调用参数中的任意一个标签,在匹配关系的限定下,该标签的标签值满足目标路由规则中的多个预设调用标签的标签值,则确定灰度调用参数满足灰度访问条件。
在本申请实施例中,业务服务器调用非灰度应用和至少一个灰度应用对业务处理请求进行业务处理,
S409、根据业务处理结果,确定至少一个灰度应用的测试结果,测试结果用于指示灰度应用的待发布版本是否满足发布条件。
在一种可能的实现方式中,若至少一个灰度应用中的目标灰度应用的测试结果指示目标灰度应用的待发布版本不满足发布条件,向目标灰度应用所在的第一服务器发送指示信息,指示信息用于指示第一服务器对目标灰度应用执行版本回滚操作,将目标灰度应用的待发布版本回滚到待发布版本的前一个版本,待发布版本的目标灰度应用用于为业务处理请求提供服务,可以避免目标灰度应用出现异常,中断服务。
在本实施例中,业务服务器可以通过预设入口应用获取业务处理请求,然后确定目标业务对应的多个业务应用的标识和灰度信息,然后根据多个业务应用的标识和灰度信息,确定非灰度应用和至少一个灰度应用,再确定非灰度应用和至少一个灰度应用之间的应用调用顺序。然后对业务处理请求进行解析,确定业务处理请求中是否包括灰度调用参数,若包括,则获取至少一个路由规则,并根据灰度调用参数、至少一个路由规则以及应用调用顺序,调用非灰度应用和至少一个灰度应用对业务处理请求进行业务处理,得到业务处理结果,根据业务处理结果,确定至少一个灰度应用的测试结果,测试结果用于指示灰度应用的待发布版本是否满足发布条件。若满足发布条件,则可以将灰度应用的待发布版本发布,本申请可以满足分布式应用中的多个应用同时需要发布新版本的需求,提高了分布式应用的新版本发布的效率。
下面,对本申请实施例三提供的又一种分布式应用的发布方法进行说明。具体对运维服务器和业务服务器之间的交互进行说明。
图5为本申请实施例三提供的有一种分布式应用的发布方法的信令流程图,参考图5,该方法包括如下步骤:
S501、运维服务器创建路由规则和灰度环境信息。
运维服务器可以创建路由规则,该路由规则中包括灰度访问条件,灰度访问条件包括多个预设调用标签,每个预设调用标签包括标签名、匹配关系、标签值以及规则关系,匹配关系为等于、不等于、包含和不包含中的任意一种,规则关系为全部标签匹配或者任意一个标签匹配。
灰度环境信息包括灰度环境的名称、灰度应用的名称、灰度应用所在的组件的名称、灰度应用所在的物理单元的标识、以及灰度应用的待发布版本的版本号。示例性的,灰度环境信息可以参考图6,图6为创建灰度环境信息的界面示意图。
S502、运维服务器确定路由规则对应的业务服务器、以及灰度环境信息对应的第二服务器。
在一种可能的实现方式中,路由规则中可以还可以包括预设入口应用的应用信息,该应用信息包括预设入口应用所在的组件的名称、预设入口应用的应用名称以及预设入口应用所在的物理单元的标识。
示例性的,路由规则可以参考图7,图7为创建路由规则的界面示意图。可选的,路由规则中还可以包括规则名称、规则的可用状态(可用或者不可用)、优先级以及目标灰度环境的标识。业务服务器可以根据目标灰度环境的标识,确定调用的灰度应用为目标灰度环境中的应用。
在本申请实施例中,一个服务器为业务应用部署的最小单位,一个物理单元中包括多个服务器,一个机房中可以包括多个物理单元。
运维服务器可以根据路由规则中的预设入口应用的应用信息,确定该路由规则对应的业务服务器。
运维服务器可以将灰度应用所部署的设备、以及需要调用该灰度应用的所有设备,确定为灰度环境信息对应的第二服务器。
S503、运维服务器向路由规则对应的业务服务器发送路由规则和灰度环境信息。
S504、运维服务器向灰度环境信息对应的第二服务器发送灰度环境信息。
可以理解,图5中的第二服务器的数量仅为示例,实际中,第一服务器的数量为多个,图5中未示出。
在本实施例中,运维服务器可以创建路由规则和灰度环境信息,然后确定路由规则对应的业务服务器、以及灰度环境信息对应的第二服务器,并向路由规则对应的业务服务器发送路由规则和灰度环境信息,然后向灰度环境信息对应的第二服务器发送灰度环境信息,使得业务服务器可以基于路由规则和灰度环境信息,对接收到的业务处理请求进行灰度应用和非灰度应用的调用,第二服务器可以根据灰度环境信息确定处于灰度环境中的应用。本申请可以满足分布式应用中的多个应用同时需要发布新版本的需求,提高了分布式应用的新版本发布的效率。
图8为本申请实施例四提供的一种分布式应用的发布装置的结构示意图。参考图8,该装置80包括:接收模块801、第一确定模块802、第二确定模块803、第三确定模804、处理模块805、第四确定模块806。
接收模块801,用于接收目标业务对应的业务处理请求。
第一确定模块802,用于确定目标业务对应的多个业务应用的标识和灰度信息,灰度信息包括至少一个灰度应用的标识,灰度应用为多个业务应用中存在待发布版本的应用。
第二确定模块803,用于根据多个业务应用的标识和灰度信息,确定非灰度应用和至少一个灰度应用。
第三确定模块804,用于确定非灰度应用和至少一个灰度应用之间的应用调用顺序。
处理模块805,用于根据应用调用顺序,调用非灰度应用和至少一个灰度应用对业务处理请求进行业务处理,得到业务处理结果。
第四确定模块806,用于根据业务处理结果,确定至少一个灰度应用的测试结果,测试结果用于指示灰度应用的待发布版本是否满足发布条件。
在一种可能的实现方式中,第一确定模块802具体用于:
从注册中心数据库中获取目标应用对应的应用列表,应用列表包括目标业务的多个业务应用的应用信息,应用信息中包括业务应用的标识,注册中心数据库中包括多个应用的应用列表。
将应用信息中包括目标灰度环境的标识的业务应用,确定为灰度应用,目标灰度环境为灰度应用的运行环境。
根据灰度应用的标识,确定灰度信息。
在一种可能的实现方式中,业务服务器中部署有目标灰度环境的预设入口应用,接收模块801具体用于:
通过预设入口应用获取业务处理请求,预设入口应用中包括至少一个路由规则,其中,每个路由规则中包括灰度访问条件。
在一种可能的实现方式中,处理模块805具体用于:
对业务处理请求进行解析,确定业务处理请求中是否包括灰度调用参数。
若业务处理请求中包括灰度调用参数,获取至少一个路由规则。
根据灰度调用参数、至少一个路由规则以及应用调用顺序,调用非灰度应用和至少一个灰度应用对业务处理请求进行业务处理,得到业务处理结果。
在一种可能的实现方式中,处理模块805具体用于:
确定至少一个路由规则的优先级。
将至少一个路由规则中优先级最高的路由规则为确定目标路由规则。
确定灰度调用参数是否满足目标路由规则的灰度访问条件。
若灰度调用参数满足目标路由规则的灰度访问条件,则根据应用调用顺序,调用非灰度应用和至少一个灰度应用对业务处理请求进行业务处理,得到业务处理结果。
在一种可能的实现方式中,灰度访问条件包括多个预设调用标签,每个预设调用标签包括标签名、匹配关系、标签值以及规则关系,匹配关系为等于、不等于、包含和不包含中的任意一种,规则关系为全部标签匹配或者任意一个标签匹配。
处理模块805具体用于:
若规则关系为全部标签匹配,则根据匹配关系确定灰度调用参数是否满足多个预设调用标签的标签值,若满足,则确定灰度调用参数满足灰度访问条件。
若规则关系为任意一个标签匹配,则根据匹配关系确定灰度调用参数是否满足多个预调用标签的标签值中的任意一个标签值,若满足,则确定灰度调用参数满足灰度访问条件。
在一种可能的实现方式中,装置80还包括:发送模块。
发送模块具体用于:
若至少一个灰度应用中的目标灰度应用的测试结果指示目标灰度应用的待发布版本不满足发布条件,向目标灰度应用所在的第一服务器发送指示信息,指示信息用于指示第一服务器对目标灰度应用执行版本回滚操作,将目标灰度应用的待发布版本回滚到待发布版本的前一个版本,待发布版本的目标灰度应用用于为业务处理请求提供服务。
本实施例的装置,可用于执行上述方法实施例的技术方案,具体实现方式和技术效果类似,这里不再赘述。
图9为本申请实施例五提供的一种电子设备的结构示意图,如图9所示,电子设备90可以包括:至少一个处理器901和存储器902。
存储器902,用于存放程序。具体地,程序可以包括程序代码,程序代码包括计算机执行指令。
存储器902可能包含随机存取存储器(Random Access Memory,RAM),也可能还包括非易失性存储器(Non-volatile Memory),例如至少一个磁盘存储器。
处理器901用于执行存储器902存储的计算机执行指令,以实现前述方法实施例所描述的方法。其中,处理器901可能是一个中央处理器(Central Processing Unit,CPU),或者是特定集成电路(Application Specific Integrated Circuit,ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路。
可选的,电子设备90还可以包括:通信接口903。在具体实现上,如果通信接口903、存储器902和处理器901独立实现,则通信接口903、存储器902和处理器901可以通过总线相互连接并完成相互间的通信。总线可以是工业标准体系结构(Industry StandardArchitecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果通信接口903、存储器902和处理器901集成在一块芯片上实现,则通信接口903、存储器902和处理器901可以通过内部接口完成通信。
电子设备90可以为芯片、芯片模组、IDE、服务器等。
本实施例的电子设备,可用于执行上述方法实施例的技术方案,具体实现方式和技术效果类似,这里不再赘述。
本申请实施例六提供了一种计算机可读存储介质,该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、RAM、磁盘或者光盘等各种可以存储计算机执行指令的介质,具体的,该计算机可读存储介质中存储有计算机执行指令,该计算机执行指令被计算机执行时使得上述方法实施例所示的技术方案被执行,具体实现方式和技术效果类似,这里不再赘述。
本申请实施例七提供一种计算机程序产品,包括计算机程序,计算机程序被计算机执行时,使得上述方法实施例所示的技术方案被执行,具体实现方式和技术效果类似,这里不再赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。

Claims (10)

1.一种分布式应用的发布方法,其特征在于,应用于业务服务器,所述方法包括:
接收目标业务对应的业务处理请求;
确定所述目标业务对应的多个业务应用的标识和灰度信息,所述灰度信息包括至少一个灰度应用的标识,所述灰度应用为所述多个业务应用中存在待发布版本的应用;
根据所述多个业务应用的标识和所述灰度信息,确定非灰度应用和所述至少一个灰度应用;
确定所述非灰度应用和所述至少一个灰度应用之间的应用调用顺序;
根据所述应用调用顺序,调用所述非灰度应用和所述至少一个灰度应用对所述业务处理请求进行业务处理,得到业务处理结果;
根据所述业务处理结果,确定所述至少一个灰度应用的测试结果,所述测试结果用于指示所述灰度应用的所述待发布版本是否满足发布条件。
2.根据权利要求1所述的方法,其特征在于,所述确定所述目标业务对应的多个业务应用的标识和灰度信息,包括:
从注册中心数据库中获取目标应用对应的应用列表,应用列表包括所述目标业务的多个业务应用的应用信息,所述应用信息中包括业务应用的标识,所述注册中心数据库中包括多个应用的应用列表
将应用信息中包括目标灰度环境的标识的业务应用,确定为所述灰度应用,所述目标灰度环境为所述灰度应用的运行环境;
根据所述灰度应用的标识,确定所述灰度信息。
3.根据权利要求1或2所述的方法,其特征在于,所述业务服务器中部署有目标灰度环境的预设入口应用;
所述接收目标业务对应的业务处理请求,包括:
通过所述预设入口应用获取业务处理请求,所述预设入口应用中包括至少一个路由规则,其中,每个路由规则中包括灰度访问条件。
4.根据权利要求3所述的方法,其特征在于,所述根据所述应用调用顺序,所述调用所述非灰度应用和所述至少一个灰度应用对所述业务处理请求进行业务处理,得到业务处理结果,包括:
对所述业务处理请求进行解析,确定所述业务处理请求中是否包括灰度调用参数;
若所述业务处理请求中包括所述灰度调用参数,获取所述至少一个路由规则;
根据所述灰度调用参数、所述至少一个路由规则以及所述应用调用顺序,调用所述非灰度应用和所述至少一个灰度应用对所述业务处理请求进行业务处理,得到业务处理结果。
5.根据权利要求4所述的方法,其特征在于,所述根据所述灰度调用参数、所述至少一个路由规则以及所述应用调用顺序,调用所述非灰度应用和所述至少一个灰度应用对所述业务处理请求进行业务处理,得到业务处理结果,包括:
确定所述至少一个路由规则的优先级;
将所述至少一个路由规则中优先级最高的路由规则为确定目标路由规则;
确定所述灰度调用参数是否满足所述目标路由规则的灰度访问条件;
若所述灰度调用参数满足所述目标路由规则的灰度访问条件,则根据所述应用调用顺序,调用所述非灰度应用和所述至少一个灰度应用对所述业务处理请求进行业务处理,得到业务处理结果。
6.根据权利要求5所述的方法,其特征在于,所述灰度访问条件包括多个预设调用标签,每个预设调用标签包括标签名、匹配关系、标签值以及规则关系,所述匹配关系为等于、不等于、包含和不包含中的任意一种,所述规则关系为全部标签匹配或者任意一个标签匹配;
所述确定所述灰度调用参数是否满足所述目标路由规则的灰度访问条件,包括:
若所述规则关系为全部标签匹配,则根据所述匹配关系确定所述灰度调用参数是否满足所述多个预设调用标签的标签值,若满足,则确定所述灰度调用参数满足所述灰度访问条件;
若所述规则关系为任意一个标签匹配,则根据所述匹配关系确定所述灰度调用参数是否满足所述多个预调用标签的标签值中的任意一个标签值,若满足,则确定所述灰度调用参数满足所述灰度访问条件。
7.根据权利要求6所述的方法,其特征在于,若所述至少一个灰度应用中的目标灰度应用的测试结果指示所述目标灰度应用的所述待发布版本不满足发布条件,所述方法还包括:
向所述目标灰度应用所在的第一服务器发送指示信息,所述指示信息用于指示所述第一服务器对所述目标灰度应用执行版本回滚操作,将所述目标灰度应用的待发布版本回滚到所述待发布版本的前一个版本,所述待发布版本的目标灰度应用用于为所述业务处理请求提供服务。
8.一种分布式应用的发布装置,其特征在于,包括:
接收模块,用于接收目标业务对应的业务处理请求;
第一确定模块,用于确定所述目标业务对应的多个业务应用的标识和灰度信息,所述灰度信息包括至少一个灰度应用的标识,所述灰度应用为所述多个业务应用中存在待发布版本的应用;
第二确定模块,用于根据所述多个业务应用的标识和所述灰度信息,确定非灰度应用和所述至少一个灰度应用;
第三确定模块,用于确定所述非灰度应用和所述至少一个灰度应用之间的应用调用顺序;
处理模块,用于根据所述应用调用顺序,调用所述非灰度应用和所述至少一个灰度应用对所述业务处理请求进行业务处理,得到业务处理结果;
第四确定模块,用于根据所述业务处理结果,确定所述至少一个灰度应用的测试结果,所述测试结果用于指示所述灰度应用的所述待发布版本是否满足发布条件。
9.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1-7任一项所述的分布式应用的发布方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-7任一项所述的分布式应用的发布方法。
CN202310629152.7A 2023-05-30 2023-05-30 分布式应用的发布方法、装置、设备及存储介质 Pending CN116643787A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310629152.7A CN116643787A (zh) 2023-05-30 2023-05-30 分布式应用的发布方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310629152.7A CN116643787A (zh) 2023-05-30 2023-05-30 分布式应用的发布方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN116643787A true CN116643787A (zh) 2023-08-25

Family

ID=87624279

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310629152.7A Pending CN116643787A (zh) 2023-05-30 2023-05-30 分布式应用的发布方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN116643787A (zh)

Similar Documents

Publication Publication Date Title
CN111556059A (zh) 异常检测方法、异常检测装置及终端设备
CN109145590B (zh) 一种函数hook检测方法、检测设备及计算机可读介质
CN112733206A (zh) 资源分配方法、装置、服务器及介质
CN110532025B (zh) 基于微服务架构的数据处理方法、装置、设备及存储介质
CN111461763A (zh) 一种资源分配方法及装置
CN109189494B (zh) 配置灰度发布方法、装置、设备及计算机可读存储介质
CN108664343B (zh) 一种微服务的有状态调用方法及装置
CN113312675A (zh) 属性校验方法、装置、电子设备及存储介质
CN111367694B (zh) 事件处理方法、服务器及计算机存储介质
CN111241112B (zh) 一种保证幂等的微服务调用监管***及方法
CN116643787A (zh) 分布式应用的发布方法、装置、设备及存储介质
CN116415258A (zh) 漏洞检测方法、装置、设备、介质及程序产品
CN116647603A (zh) 分布式应用的发布方法、装置、设备及存储介质
CN114115933A (zh) 软件升级的方法、***、装置、电子设备及介质
CN114244776A (zh) 一种报文发送方法、***、装置、设备及介质
CN113296911A (zh) 集群调用方法、集群调用装置、电子设备及可读存储介质
CN116633856A (zh) 业务处理方法、装置、设备及存储介质
CN111681097A (zh) 账户类型的识别方法、服务器、电子设备及***
CN109918895B (zh) 用于输出数据的方法、电子设备和计算机可读介质
CN114327602B (zh) 信息处理方法、装置、电子设备及存储介质
CN111915336B (zh) 确定投诉消息的真实性的方法、装置、设备和存储介质
CN111324472B (zh) 对待检测信息作垃圾项目判断的方法和装置
CN116777376B (zh) 应用于企业智能中台的saas***
CN108008966B (zh) 一种资源更新方法和***
CN118170665A (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