CN112817565A - 微服务组合方法、装置、设备及存储介质 - Google Patents
微服务组合方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112817565A CN112817565A CN202110074448.8A CN202110074448A CN112817565A CN 112817565 A CN112817565 A CN 112817565A CN 202110074448 A CN202110074448 A CN 202110074448A CN 112817565 A CN112817565 A CN 112817565A
- Authority
- CN
- China
- Prior art keywords
- micro
- service
- services
- description language
- microservice
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 109
- 230000008569 process Effects 0.000 claims abstract description 54
- 230000002452 interceptive effect Effects 0.000 claims description 25
- 230000006870 function Effects 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 14
- 238000011161 development Methods 0.000 abstract description 28
- 238000012423 maintenance Methods 0.000 abstract description 28
- 238000012545 processing Methods 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 16
- 239000000203 mixture Substances 0.000 description 16
- 238000004891 communication Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 239000002131 composite material Substances 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 239000000284 extract Substances 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种微服务组合方法、装置、设备及存储介质,属于数据处理领域。微服务组合方法包括:获取微服务描述语言文件和微服务组合过程描述语言文件,微服务描述语言文件用于表征微服务的属性参数,微服务组合过程描述语言文件用于表征业务指定的多个微服务以及指定的多个微服务的组合关系;解析微服务组合过程描述语言文件,确定业务指定的多个微服务以及指定的多个微服务的组合关系;从与多个微服务对应的微服务描述语言文件中加载多个微服务的属性参数;根据加载的多个微服务的属性参数和指定的多个微服务的组合关系,生成业务的业务组件。根据本申请实施例能够提高业务开发运维的效率。
Description
技术领域
本申请属于数据处理领域,尤其涉及一种微服务组合方法、装置、设备及存储介质。
背景技术
微服务是一种面向服务的体系结构,可以将应用程序构造为一组松散耦合的服务。在微服务体系结构中,服务是细粒度的,协议是轻量级的。
用于实现某个业务的应用程序即业务程序一般需要多个微服务组合实现。开发维护人员需要编写多个微服务组合而成的业务程序,才能够通过运行业务程序来实现业务的执行。业务开发运维工作量大,导致业务开发运维的效率较低。
发明内容
本申请实施例提供一种微服务组合方法、装置、设备及存储介质,能够提高业务开发运维的效率。
第一方面,本申请实施例提供一种微服务组合方法,包括:获取微服务描述语言文件和微服务组合过程描述语言文件,微服务描述语言文件用于表征微服务的属性参数,微服务组合过程描述语言文件用于表征业务指定的多个微服务以及指定的多个微服务的组合关系;解析微服务组合过程描述语言文件,确定业务指定的多个微服务以及指定的多个微服务的组合关系;从与多个微服务对应的微服务描述语言文件中加载多个微服务的属性参数;根据加载的多个微服务的属性参数和指定的多个微服务的组合关系,生成业务的业务组件。
第二方面,本申请实施例提供一种微服务组合装置,包括:文件获取模块,用于获取微服务描述语言文件和微服务组合过程描述语言文件,微服务描述语言文件用于表征微服务的属性参数,微服务组合过程描述语言文件用于表征业务指定的多个微服务以及指定的多个微服务的组合关系;解析模块,用于解析微服务组合过程描述语言文件,确定业务指定的多个微服务以及指定的多个微服务的组合关系;加载模块,用于从与多个微服务对应的微服务描述语言文件中加载多个微服务的属性参数;生成模块,用于根据加载的多个微服务的属性参数和指定的多个微服务的组合关系,生成业务的业务组件。
第三方面,本申请实施例提供一种微服务组合设备,包括:处理器以及存储有计算机程序指令的存储器;处理器执行计算机程序指令时实现第一方面的微服务组合方法。
第四方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序指令,计算机程序指令被处理器执行时实现第一方面的微服务组合方法。
本申请提供一种微服务组合方法、装置、设备及存储介质,通过用于表征微服务的属性参数的微服务描述语言文件和用于表征业务指定的微服务及微服务间组合关系的微服务这过程描述语言文件,可提取得到能够实现业务指定的微服务调用的微服务的属性参数,以及微服务的组合关系。根据属性参数和微服务的组合关系,可自动生成业务组件,不需要开发运维人员手动编写多个微服务组合而成的业务程序,从而减少了业务开发运维的工作量,提高了业务开发运维的效率。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单的介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请提供的微服务组合方法的一实施例的流程图;
图2为本申请实施例提供的微服务描述语言文件的DOM-Tree的一示例的示意图;
图3为本申请实施例提供的微服务组合过程描述语言文件的DOM-Tree的一示例的示意图;
图4为本申请提供的微服务组合方法的另一实施例的流程图;
图5为本申请提供的微服务组合方法的又一实施例的流程图;
图6为本申请提供的微服务组合方法的再一实施例的流程图;
图7为本申请实施例提供的微服务组合流程的一示例的流程图;
图8为本申请提供的微服务组合装置的一实施例的结构示意图;
图9为本申请提供的微服务组合装置的另一实施例的结构示意图;
图10为本申请提供的微服务组合设备的一实施例的结构示意图。
具体实施方式
下面将详细描述本申请的各个方面的特征和示例性实施例,为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本申请进行进一步详细描述。应理解,此处所描述的具体实施例仅意在解释本申请,而不是限定本申请。对于本领域技术人员来说,本申请可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本申请的示例来提供对本申请更好的理解。
微服务是一种面向服务的体系结构,可以将应用程序构造为一组松散耦合的服务。在微服务架构中强调服务的拆分,将一个服务拆分为多个微服务。在一个服务中,多个微服务之间存在并行、串联等组合调用场景。为了实现某个业务的服务,开发维护人员需要手动编写多个微服务组合而成的业务程序。通过运行业务程序实现该业务的服务的执行。业务程序的开发运维工作量大,使得业务程序的开发运维效率较低。
本申请提供一种微服务组合方法、装置、设备及存储介质,能够通过微服务描述语言文件和微服务组合过程描述语言文件表征业务指定的多个微服务以及指定的多个微服务的组合关系,利用微服务描述语言文件和微服务组合过程描述语言文件,自动生成业务的业务组件,不需要开发维护人员手工编写大段的编码形成业务程序,减小了业务开发运维的工作量,从而提高业务开发运维的效率。
本申请提供一种微服务组合方法,可由微服务组合装置或微服务组合设备执行。图1为本申请提供的微服务组合方法的一实施例的流程图。如图1所示,该微服务组合方法包括步骤S101至步骤S104。
在步骤S101中,获取微服务描述语言文件和微服务组合过程描述语言文件。
微服务描述语言(Micro Service Description Language,MSDL)文件用于对微服务接口进行描述,具体地,微服务描述语言文件可用于表征微服务的属性参数。微服务的属性参数可表征微服务。根据微服务的属性参数,可实现对该微服务的调用,即微服务的属性参数可用于实现对该微服务的调用。不同的微服务的属性参数可不同。
在一些示例中,微服务的属性参数可包括微服务标识、微服务类名、微服务功能描述信息、微服务输入描述信息和微服务输出描述信息。
微服务标识用于标识微服务。不同的微服务的微服务标识不同。微服务标识可包括数字、字母以及其他符号等,在此并不限定。微服务类名为该微服务的类名。微服务功能描述信息包括对该微服务实现的功能的描述,可包括中文、英文等,在此并不限定。微服务输入描述信息可用于表征该微服务的输入的属性及要求。微服务输出描述信息可用于保证该微服务的输出的属性及要求。
具体地,微服务输入描述信息包括操作描述符、输入参数类型和输入参数名称。操作描述符用于表征微服务的输入的操作,可通过操作描述符来对微服务的输入的操作进行发布和订阅。输入参数类型可用于表征微服务的输入参数的数据类型。输入参数名称为微服务的输入参数的名称。微服务输入描述信息还可包括作用描述信息。作用描述信息用于描述微服务的输入的操作。
微服务输出描述信息包括响应描述符、输出参数类型和输出参数名称。响应描述符用于表征微服务的输出的响应,可通过响应描述符来对微服务的输出的响应进行发布和订阅。输出参数类型可用于表征微服务的输出参数的数据类型。输出参数名称为微服务的输出参数的名称。微服务输出描述信息还可包括功能描述信息。功能描述信息用于表征微服务输出的功能。
在一些示例中,微服务的属性参数还可包括部署描述信息。部署描述信息用于表征微服务的部署情况。部署描述信息可包括微服务的部署的虚拟位置信息、地理位置信息、逻辑位置信息等,在此并不限定。例如,部署描述信息可包括城市、机房、服务器集群等。
下面以文档对象化模型树(Document Object Model-Tree,DOM-Tree)为例对微服务描述语言文件进行说明。图2为本申请实施例提供的微服务描述语言文件的DOM-Tree的一示例的示意图。如图2所示,微服务描述语言文件包括微服务标识id、微服务类名class、微服务功能描述信息description、微服务输入描述信息input、微服务输出描述信息output和部署描述信息deploy。微服务输入描述信息input包括作用描述信息description、输入参数组paramGroup和操作描述符operationName。输入参数组paramGroup包括输入参数名称paraName和输入参数类型paraType。微服务输出描述信息output包括功能描述信息description、输出参数组paramGroup和响应描述符operationName。输出参数组paramGroup包括输出参数名称paraName和输出参数类型paraType。部署描述信息deploy包括区域zone、集群cluster、组group和应用程序app。
微服务组合过程描述语言(Micro Service Process Description Language,MSPDL)文件用于表征业务指定的多个微服务以及指定的多个微服务的组合关系。也就是说,微服务组合过程描述语言文件用于对微服务之间的组合进行描述。业务可包括多个微服务。通过多个微服务的组合,形成业务。业务指定的多个微服务即为业务包括的多个微服务,可由业务的订阅方指定。业务指定的多个微服务的组合关系也可由业务的订阅方指定。
在一些示例中,微服务组合过程描述语言文件包括业务的业务标识、业务的业务描述信息、业务指定的微服务的微服务标识、业务指定的微服务的发布路径、业务指定的微服务的发布信息和业务的订阅方信息。
业务标识用于标识该业务,不同业务的业务标识不同。业务标识可包括数字、字母以及其他符号等,在此并不限定。业务描述信息包括对该业务的描述,可包括中文、英文等,在此并不限定。业务指定的微服务的微服务标识用于标识业务指定的微服务。业务指定的微服务的发布路径,以便于根据发布路径获取微服务。业务指定的微服务的发布信息用于描述业务指定的微服务。业务的订阅方信息用于表征业务的订阅方对业务的要求。
具体地,发布信息可包括微服务功能描述信息和微服务输出描述信息。微服务功能描述信息和微服务输出描述信息可参见上述实施例中的相关说明,在此不再赘述。
订阅方信息包括订阅业务的订阅方的业务要求描述信息和订阅方的输入元素描述信息。业务要求描述具体可包括业务功能的描述信息以及业务中执行流程或执行节点的描述信息,在此并不限定。订阅方的输入元素描述信息用于描述订阅方的输入元素。订阅方的输入元素为订阅方对业务的要求,业务的输出元素能够体现订阅方的输入元素。订阅方的输入元素与发布方的输出元素具有一致性。
下面以DOM-Tree为例对微服务组合过程描述语言文件进行说明。图3为本申请实施例提供的微服务组合过程描述语言文件的DOM-Tree的一示例的示意图。如图3所示,微服务组合过程描述语言文件可包括业务标识id、业务描述信息description、微服务列表serviceGroup和微服务监听器watch。微服务列表serviceGroup为记载业务指定的微服务的列表,具体可包括业务指定的微服务的微服务标识serviceid。微服务监听器watch可包括微服务注册或发布的路径id、发布方信息pub和订阅方信息sub。发布方信息即为上述实施例中的发布信息,在此不再赘述。
微服务描述语言文件与微服务组合过程描述语言文件可采用同一标准的语言记录。
在步骤S102中,解析微服务组合过程描述语言文件,确定业务指定的多个微服务以及指定的多个微服务的组合关系。
对微服务组合过程描述语言文件进行解析,可从中提取出业务指定的多个微服务和这多个微服务的组合关系。组合关系可包括并行关系、级联关系等,在此并不限定。具体地,可根据微服务组合过程描述语言文件中的微服务的微服务标识确定业务指定的多个微服务。可根据微服务组合过程描述语言文件中的订阅方信息确定多个微服务的组合关系。根据业务指定的多个微服务以及指定的多个微服务的组合关系,可以启用、终止、暂停、更新微服务组合而成的业务过程。
在步骤S103中,从与多个微服务对应的微服务描述语言文件中加载多个微服务的属性参数。
确定业务指定的多个微服务,可获取与业务指定的多个微服务各自对应的微服务描述语言文件,加载微服务的属性参数,以保证后续能够实现对业务指定的多个微服务的调用。
具体地,加载微服务的属性参数可实现为将微服务的属性参数加载至微服务组合装置的注册表等的数据库中,在此并不限定。
在步骤S104中,根据加载的多个微服务的属性参数和指定的多个微服务的组合关系,生成业务的业务组件。
多个微服务的组合关系,能够表明微服务之间的数据流向。具体地,可通过微服务组合过程描述语言文件中的发布信息和订阅方信息,确定微服务之间的数据流向。根据可实现微服务调用的属性参数,以及能够表明微服务之间数据流向的组合关系,可自动生成该业务的业务组件,即可自动生成该业务的业务程序。该业务组件可用于执行该业务。
在本申请实施例中,并不限定步骤S102和步骤S103的执行先后顺序,步骤S102可在步骤S103之前执行,也可在步骤S103之后执行,也可与步骤S103同步执行。
在上述实施例中,微服务由各个微服务开发方提供。微服务开发方即为发布方。由多个微服务组合而成的业务的指定方为业务的订阅方。订阅方可通过订阅获取利用本申请实施例中微服务组合方法得到的业务组件。
在本申请实施例中,通过用于表征微服务的属性参数的微服务描述语言文件和用于表征业务指定的微服务及微服务间组合关系的微服务这过程描述语言文件,可提取得到能够实现业务指定的微服务调用的微服务的属性参数,以及微服务的组合关系。根据属性参数和微服务的组合关系,可自动生成业务组件,不需要开发运维人员手动编写多个微服务组合而成的业务程序,从而减少了业务开发运维的工作量,提高了业务开发运维的效率。
图4为本申请提供的微服务组合方法的另一实施例的流程图。图4与图1的不同之处在于,图1中的步骤S104可具体细化为步骤S1041至步骤S1043,图4所示的微服务组合方法还可包括步骤S105和步骤S106。
在步骤S1041中,基于指定的多个微服务的组合关系,确定微服务之间的数据流向。
根据微服务的组合关系,可确定微服务之间的数据流向。在一些示例中,具有级联关系的微服务中部分微服务的输出可作为另外部分微服务的输入。
例如,业务A指定的微服务包括微服务A1、微服务A2、微服务A3和微服务A4。其中,微服务A1和微服务A2为并行关系,微服务A1与微服务A3为级联关系,微服务A2与微服务A3为级联关系,微服务A3与微服务A4为级联关系。对应地,数据流向可包括两条数据流路径,一条为微服务A1→微服务A3→微服务A4,另一条为微服务A2→微服务A3→微服务A4。
在步骤S1042中,根据微服务之间的数据流向,生成微服务的边车应用程序,并生成边车应用程序的路由配置,以使边车应用程序执行按照路由配置调用多个微服务。
根据微服务之间的数据流向,可确定各个微服务的执行先后顺序以及各个微服务之间的执行关系。可为每个微服务生成编程应用程序,并对应生成边车应用程序的路由配置。该路由配置可指示该路由配置对应的微服务被调用后下一跳对应的微服务。在调用微服务的过程中,触发执行该微服务的边车应用程序,该边车应用程序被执行,使得该微服务调用完成后,根据边车应用程序的路由配置,跳转至下一跳的微服务,即调用下一跳的微服务,以实现整个业务的执行。
在步骤S1043中,根据边车应用程序、边车应用程序的路由配置和加载的多个微服务的属性参数,生成业务的业务组件。
边车应用程序和路由配置可保证业务指定的多个微服务能够按照业务指定的顺序执行调用,实现了业务指定的多个微服务之间的联动。加载的多个微服务的属性参数可保证业务指定的每个微服务均可调用。根据边车应用程序、边车应用程序的路由配置和加载的多个微服务的属性参数,可自动生成业务的业务组件。在获取到边车应用程序、边车应用程序的路由配置和加载的多个微服务的属性参数的基础上,可预先设置自动编程程序,通过自动编程程序,将边车应用程序、边车应用程序的路由配置和加载的多个微服务的属性参数整合成为业务组件。业务组件具体可实现为业务程序。在此并不限定该业务组件的报文格式,例如,业务组件的报文格式可为Java脚本对象简谱(JavaScript ObjectNotation,JSON)格式或可扩展标记语言(Extensible Markup Language,XML)格式等。
在步骤S105中,将业务组件作为新发布的微服务。
多个微服务组合而成的业务组件可作为新的微服务发布,在微服务架构中注册。例如,可在微服务架构中,向Pilot注册新的微服务名称,以实现多个微服务组合而成的业务组件的发布。
在步骤S106中,生成业务组件的微服务描述语言文件。
为了使得该业务组件在后续过程中也可作为本申请实施例中的微服务组合方法中所需的微服务,还可对应生成业务组件的微服务描述语言文件。若其他业务指定的微服务包括该业务组件,则可利用该业务组件的微服务描述语言文件参与上述实施例中微服务组合方法,以实现其他业务。
通过微服务组合得到的业务组件继续参与到其他业务的微服务组合,能够实现微服务的递归组合,在调用微服务的过程中,可直接调用微服务组合得到的业务组件,不需单独调用业务组件中的每个微服务,简化调用业务组件的其他业务中微服务的组合关系,能够避免调用业务组件的其他业务内部微服务间复杂的组合逻辑,从而进一步提高业务开发运维的效率。
在一些示例中,还需预先生成微服务描述语言文件。图5为本申请提供的微服务组合方法的又一实施例的流程图。图5与图1的不同之处在于,图5所示的微服务组合方法还可包括步骤S107和步骤S108,或者,包括步骤S109和步骤S110。
在步骤S107中,接收发布方输入的待发布的微服务的属性参数。
在微服务描述语言文件未生成的情况下,期望该微服务描述语言文件能够表征的微服务的属性参数即为待发布的微服务的属性参数。微服务的属性参数的具体内容可参见上述实施例中的相关说明,在此不再赘述。
在步骤S108中,根据待发布的微服务的属性参数,生成微服务描述语言文件。
微服务描述语言文件中记载的是微服务的重点信息,相对于微服务的运行程序更加简单。根据接收的待发布的微服务的属性参数,可基于预定的文件格式,生成微服务描述语言文件。
在步骤S109中,接收发布方对第一交互图形界面的第一操作指令。
第一交互图形界面包括待发布的微服务的属性参数的项目。通过第一操作指令可对第一交互图形界面中微服务的属性参数的项目进行操作,从而确定微服务的属性参数的具体的取值等。第一操作指令可包括一个操作子指令或两个以上的操作子指令,在此并不限定。
例如,微服务的属性参数包括微服务标识和微服务类名。微服务组合装置可包括显示屏,显示屏上显示有微服务标识的输入框和微服务类名的下拉菜单栏。发布方可通过第一操作指令在输入框中输入对应的微服务标识。发布方可通过第一操作指令在下拉菜单栏的下拉菜单中选择指定的微服务的微服务类名。
在步骤S110中,根据第一交互图形界面响应于第一操作指令的执行结果,生成微服务描述语言文件。
第一交互图形界面响应于第一操作指令,可生成执行结果。该执行结果包括发布方指定的微服务的属性参数。例如,发布方通过第一操作指令在输入框中输入对应的微服务标识,在下拉菜单中选择了微服务类名。对应地,第一交互图形界面响应第一操作指令的执行结果包括输入的微服务标识和微服务类型。
微服务组合装置可根据该执行结果,按照预定的文件格式,生成微服务描述语言文件。
微服务描述语言文件与微服务程序相比,内容更加简洁,结构也更为简单,便于解析提取其中的微服务的属性参数,需要开发维护人员进行的操作相对简单,减少了开发维护人员的工作量,提高了业务开发维护的效率。
在一些示例中,还需预先生成微服务组合过程描述语言文件。图6为本申请提供的微服务组合方法的再一实施例的流程图。图6与图1的不同之处在于,图6所示的微服务组合方法还可包括步骤S111和步骤S112,或者,可包括步骤S113和步骤S114。
在步骤S111中,接收订阅方输入的业务指定的多个微服务的组合关系。
业务指定的多个微服务的组合关系是由订阅方根据业务需求输入的。微服务的组合关系的具体内容可参见上述实施例中的相关说明,在此不再赘述。
在步骤S112中,根据多个微服务的组合关系,生成微服务组合过程描述语言文件。
微服务组合过程描述语言文件中记载的是微服务间的组合关系的重点信息,相对于需要人为编写的业务程序更加简单。根据接收的多个微服务的组合关系,可基于预定的文件格式,生成微服务组合过程描述语言文件。
在步骤S113中,接收订阅方对第二交互图形界面的第二操作指令。
第二交互图形界面包括候选的微服务的项目和候选的组合关系的项目。通过第二操作指令可在第二交互图形界面中选择业务指定的微服务和组合关系。第二操作指令可包括一个操作子子指令或两个以上的操作子指令,在此并不限定。
例如,微服务组合装置可包括显示屏,显示屏上显示有微服务的下拉菜单栏和组合关系的下拉菜单栏。微服务的下拉菜单栏的下拉菜单中候选的微服务包括微服务A1、A2、A3、A4、A5和A6。组合关系的下拉菜单栏的下拉菜单中候选的组合关系可包括并行关系和级联关系。订阅方可通过第二操作指令在微服务的下拉菜单候选的微服务中选择业务指定的微服务A1、A4和A6。订阅方可通过第二操作指令为微服务A1和A4在组合关系的下拉菜单中选择并行关系,为微服务A1和A6在组合关系的下拉菜单中选择级联关系,为微服务A4和A6在组合关系的下拉菜单中选择级联关系。
在步骤S114中,根据第二交互图形界面响应于第二操作指令的执行结果,生成微服务组合过程描述语言文件。
第二交互图形界面响应于第二操作指令,可生成执行结果。该执行结果包括订阅方指定的业务的多个微服务以及多个微服务的组合关系。例如,订阅方对第二交互图形界面输入的第二操作指令如步骤S113中的示例所示,对应地,该执行结果包括业务指定的微服务A1、A4和A6,以及微服务A1和A4为并行关系、A1和A6为级联关系、A4和A6为级联关系。
微服务组合装置可根据该执行结果,按照预定的文件格式,生成微服务组合过程描述语言文件。
微服务组合过程描述语言文件与开发维护人员手动编写的业务程序相比,内容更加简洁,结构也更为简单,便于解析提取其中的微服务以及微服务之间的组合关系,需要开发维护人员进行的操作相对简单,减少了开发维护人员的工作量,提高了业务开发维护的效率。
在一些示例中,上述生成的业务组件的报文格式可能会与业务的订阅方要求的业务组件的报文格式不同。为了业务组件的报文格式可与不同订阅方要求的不同的报文格式兼容,可在业务指定的多个微服务中增添用于转换报文格式的微服务,即业务指定的多个微服务还可包括用于转换报文格式的微服务。可通过将用于转换报文格式的微服务的信息添加入微服务组合过程描述语言文件,以实现在业务指定的多个微服务中增添用于转换报文格式的微服务。
例如,在生成的业务组件默认的报文格式为JSON格式,但订阅方要求的报文格式为XML格式的情况下,可通过在业务指定的多个微服务中增添用于将JSON格式转换为XML格式的微服务,使得业务组件最终的报文格式为XML格式,满足订阅方对报文格式的要求。
上述实施例中的微服务方法可通过包括微服务注册中心、描述生成器、描述管理器、解析引擎和运行引擎的系统实现,该系统也可具体实现为装置或设备,即微服务注册中心、描述生成器、描述管理器、解析引擎和运行引擎可实现为功能模块等,在此并不限定。下面以一示例来说明实现微服务组合流程中发布方、订阅方与微服务注册中心、描述生成器、描述管理器、解析引擎和运行引擎之间的交互过程。图7为本申请实施例提供的微服务组合流程的一示例的流程图。如图7所示,该微服务组合可包括步骤S201至步骤S214。
在步骤S201中,发布方在微服务注册中心发布微服务。
在步骤S202中,描述生成器从微服务注册中心获取微服务的元信息。
微服务的元信息可包括微服务的属性参数。
在步骤S203中,描述生成器根据微服务的元信息,生成MSDL文件。
在步骤S204中,描述生成器向描述管理器下发MSDL文件。
在步骤S205中,描述管理器从MSDL文件中提取微服务的元信息,更新描述管理器的微服务的注册表。
更新描述管理器的微服务的注册表,即将从MSDL文件中提取的微服务的元信息加载到该注册表中。
在步骤S206中,订阅方在微服务注册中心输入业务需求。
业务需求可表征业务指定的微服务以及指定的微服务的组合关系。
在步骤S207中,微服务注册中心根据业务需求,生成业务描述。
业务描述用于描述业务指定的微服务以及指定的微服务的组合关系。
在步骤S208中,微服务注册中心向描述生成器发送业务描述。
在步骤S209中,描述生成器根据业务描述,生成MSPDL文件。
在步骤S210中,描述生成器向解析引擎下发MSPDL文件。
在步骤S211中,解析引擎解析MSPDL文件,并更新解析引擎的微服务组合过程注册表。
更新解析引擎的微服务组合过程的注册表,即将从MSPDL文件中解析得到的微服务的相关信息和微服务的组合关系的相关信息加载到该注册表中。
在步骤S212中,解析引擎将业务指定的微服务和微服务之间的组合关系向运行引擎发送。
在步骤S213中,运行引擎生成业务组件。
在步骤S214中,运行引擎将业务组件作为微服务在微服务注册中心发布。
步骤S201至步骤S214中的具体内容可参见上述实施例中的相关说明,在此不再赘述。
本申请还提供一种微服务组合装置。图8为本申请提供的微服务组合装置的一实施例的结构示意图。如图8所示,该微服务组合装置300可包括文件获取模块301、解析模块302、加载模块303和生成模块304。
文件获取模块301可用于获取微服务描述语言文件和微服务组合过程描述语言文件。
微服务描述语言文件用于表征微服务的属性参数。微服务组合过程描述语言文件用于表征业务指定的多个微服务以及指定的多个微服务的组合关系。
在一些示例中,微服务的属性参数包括微服务标识、微服务类名、微服务功能描述信息、微服务输入描述信息和微服务输出描述信息。
具体地,微服务输入描述信息包括操作描述符、输入参数类型和输入参数名称。
具体地,微服务输出描述信息包括响应描述符、输出参数类型和输出参数名称。
在一些示例中,微服务的属性参数还可包括部署描述信息。
在一些示例中,微服务组合过程描述语言文件包括业务的业务标识、业务的业务描述信息、业务指定的微服务的微服务标识、业务指定的微服务的发布路径、业务指定的微服务的发布信息和业务的订阅方信息。
具体地,发布信息包括微服务功能描述信息和微服务输出描述信息。
具体地,订阅方信息包括订阅业务的订阅方的业务要求描述信息和订阅方的输入元素描述信息。
解析模块302可用于解析微服务组合过程描述语言文件,确定业务指定的多个微服务以及指定的多个微服务的组合关系。
加载模块303可用于从与多个微服务对应的微服务描述语言文件中加载多个微服务的属性参数。
生成模块304可用于根据加载的多个微服务的属性参数和指定的多个微服务的组合关系,生成业务的业务组件。
在本申请实施例中,通过用于表征微服务的属性参数的微服务描述语言文件和用于表征业务指定的微服务及微服务间组合关系的微服务这过程描述语言文件,可提取得到能够实现业务指定的微服务调用的微服务的属性参数,以及微服务的组合关系。根据属性参数和微服务的组合关系,可自动生成业务组件,不需要开发运维人员手动编写多个微服务组合而成的业务程序,从而减少了业务开发运维的工作量,提高了业务开发运维的效率。
在一些示例中,生成模块304可用于基于指定的多个微服务的组合关系,确定微服务之间的数据流向;根据微服务之间的数据流向,生成微服务的边车应用程序,并生成边车应用程序的路由配置,以使边车应用程序执行按照路由配置调用多个微服务;根据边车应用程序、边车应用程序的路由配置和加载的多个微服务的属性参数,生成业务的业务组件。
图9为本申请提供的微服务组合装置的另一实施例的结构示意图。图9与图8的不同之处在于,图9所示的微服务组合装置300还可包括接收模块305、第一文件生成模块306和第二文件生成模块307。
在一些示例中,接收模块305可用于接收发布方输入的待发布的微服务的属性参数。
第一文件生成模块306可用于根据待发布的微服务的属性参数,生成微服务描述语言文件。
在另一些示例中,接收模块305可用于接收发布方对第一交互图形界面的第一操作指令。
第一交互图形界面包括待发布的微服务的属性参数的项目。
第一文件生成模块306可用于根据第一交互图形界面响应于第一操作指令的执行结果,生成微服务描述语言文件。
在又一些示例中,接收模块305可用于接收订阅方输入的业务指定的多个微服务的组合关系。
第一文件生成模块306可用于根据多个微服务的组合关系,生成微服务组合过程描述语言文件。
在再一些示例中,接收模块305可用于接收订阅方对第二交互图形界面的第二操作指令。
第二交互图形界面包括候选的微服务的项目和候选的组合关系的项目。
第一文件生成模块306可用于根据第二交互图形界面响应于第二操作指令的执行结果,生成微服务组合过程描述语言文件。
在一些示例中,第二文件生成模块307可用于将业务组件作为新发布的微服务,生成业务组件的微服务描述语言文件。
在一些示例中,上述业务指定的多个微服务可包括用于转换报文格式的微服务。
本申请还提供一种微服务组合设备。图10为本申请提供的微服务组合设备的一实施例的结构示意图。如图10所示,微服务组合设备400包括存储器401、处理器402及存储在存储器401上并可在处理器402上运行的计算机程序指令。
在一个示例中,上述处理器402可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
存储器401可包括只读存储器(Read-Only Memory,ROM),随机存取存储器(RandomAccess Memory,RAM),磁盘存储介质设备,光存储介质设备,闪存设备,电气、光学或其他物理/有形的存储器存储设备。因此,通常,存储器包括一个或多个编码有包括计算机可执行指令的软件的有形(非暂态)计算机可读存储介质(例如,存储器设备),并且当该软件被执行(例如,由一个或多个处理器)时,其可操作来执行参考根据本申请的微服务组合方法所描述的操作。
处理器402通过读取存储器401中存储的可执行程序代码来运行与可执行程序代码对应的计算机程序指令,以用于实现上述实施例中的微服务组合方法。
在一个示例中,微服务组合设备400还可包括通信接口403和总线404。其中,如图10所示,存储器401、处理器402、通信接口403通过总线404连接并完成相互间的通信。
通信接口403,主要用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。也可通过通信接口403接入输入设备和/或输出设备。
总线404包括硬件、软件或两者,将微服务组合设备400的部件彼此耦接在一起。举例来说而非限制,总线404可包括加速图形端口(Accelerated Graphics Port,AGP)或其他图形总线、增强工业标准架构(Enhanced Industry Standard Architecture,EISA)总线、前端总线(Front Side Bus,FSB)、超传输(Hyper Transport,HT)互连、工业标准架构(Industrial Standard Architecture,ISA)总线、无限带宽互连、低引脚数(Low pincount,LPC)总线、存储器总线、微信道架构(Micro Channel Architecture,MCA)总线、外围组件互连(Peripheral Component Interconnect,PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(Serial Advanced Technology Attachment,SATA)总线、视频电子标准协会局部(Video Electronics Standards Association Local Bus,VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线404可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序指令,该计算机程序指令被处理器执行时可实现上述实施例中的微服务组合方法,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,上述计算机可读存储介质可包括非暂态计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等,在此并不限定。
需要明确的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。对于装置实施例、设备实施例、计算机可读存储介质实施例而言,相关之处可以参见方法实施例的说明部分。本申请并不局限于上文所描述并在图中示出的特定步骤和结构。本领域的技术人员可以在领会本申请的精神之后,作出各种改变、修改和添加,或者改变步骤之间的顺序。并且,为了简明起见,这里省略对已知方法技术的详细描述。
上面参考根据本申请的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本申请的各方面。应当理解,流程图和/或框图中的每个方框以及流程图和/或框图中各方框的组合可以由计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机、或其它可编程数据处理装置的处理器,以产生一种机器,使得经由计算机或其它可编程数据处理装置的处理器执行的这些指令使能对流程图和/或框图的一个或多个方框中指定的功能/动作的实现。这种处理器可以是但不限于是通用处理器、专用处理器、特殊应用处理器或者现场可编程逻辑电路。还可理解,框图和/或流程图中的每个方框以及框图和/或流程图中的方框的组合,也可以由执行指定的功能或动作的专用硬件来实现,或可由专用硬件和计算机指令的组合来实现。
本领域技术人员应能理解,上述实施例均是示例性而非限制性的。在不同实施例中出现的不同技术特征可以进行组合,以取得有益效果。本领域技术人员在研究附图、说明书及权利要求书的基础上,应能理解并实现所揭示的实施例的其他变化的实施例。在权利要求书中,术语“包括”并不排除其他装置或步骤;数量词“一个”不排除多个;术语“第一”、“第二”用于标示名称而非用于表示任何特定的顺序。权利要求中的任何附图标记均不应被理解为对保护范围的限制。权利要求中出现的多个部分的功能可以由一个单独的硬件或软件模块来实现。某些技术特征出现在不同的从属权利要求中并不意味着不能将这些技术特征进行组合以取得有益效果。
Claims (11)
1.一种微服务组合方法,其特征在于,包括:
获取微服务描述语言文件和微服务组合过程描述语言文件,所述微服务描述语言文件用于表征微服务的属性参数,所述微服务组合过程描述语言文件用于表征业务指定的多个微服务以及指定的所述多个微服务的组合关系;
解析所述微服务组合过程描述语言文件,确定所述业务指定的所述多个微服务以及指定的所述多个微服务的组合关系;
从与所述多个微服务对应的所述微服务描述语言文件中加载所述多个微服务的属性参数;
根据加载的所述多个微服务的属性参数和指定的所述多个微服务的组合关系,生成所述业务的业务组件。
2.根据权利要求1所述的方法,其特征在于,所述根据加载的所述多个微服务的属性参数和指定的所述多个微服务的组合关系,生成所述业务的业务组件,包括:
基于指定的所述多个微服务的组合关系,确定微服务之间的数据流向;
根据所述微服务之间的数据流向,生成微服务的边车应用程序,并生成所述边车应用程序的路由配置,以使所述边车应用程序执行按照路由配置调用所述多个微服务;
根据所述边车应用程序、所述边车应用程序的路由配置和加载的所述多个微服务的属性参数,生成所述业务的所述业务组件。
3.根据权利要求1所述的方法,其特征在于,在所述获取微服务描述语言文件和微服务组合过程描述语言文件之前,还包括:
接收发布方输入的待发布的微服务的属性参数;根据所述待发布的微服务的属性参数,生成所述微服务描述语言文件;
或者,
接收发布方对第一交互图形界面的第一操作指令,所述第一交互图形界面包括待发布的微服务的属性参数的项目;根据所述第一交互图形界面响应于所述第一操作指令的执行结果,生成所述微服务描述语言文件。
4.根据权利要求1所述的方法,其特征在于,在所述获取微服务描述语言文件和微服务组合过程描述语言文件之前,还包括:
接收订阅方输入的所述业务指定的所述多个微服务的组合关系;根据所述多个微服务的组合关系,生成所述微服务组合过程描述语言文件;
或者,
接收订阅方对第二交互图形界面的第二操作指令,所述第二交互图形界面包括候选的微服务的项目和候选的组合关系的项目;根据所述第二交互图形界面响应于所述第二操作指令的执行结果,生成所述微服务组合过程描述语言文件。
5.根据权利要求1所述的方法,其特征在于,在所述生成所述业务的业务组件之后,还包括:
将所述业务组件作为新发布的微服务;
生成所述业务组件的微服务描述语言文件。
6.根据权利要求1所述的方法,其特征在于,所述业务指定的多个微服务包括用于转换报文格式的微服务。
7.根据权利要求1至6中任意一项所述的方法,其特征在于,所述微服务的属性参数包括微服务标识、微服务类名、微服务功能描述信息、微服务输入描述信息和微服务输出描述信息;
所述微服务输入描述信息包括操作描述符、输入参数类型和输入参数名称;
所述微服务输出描述信息包括响应描述符、输出参数类型和输出参数名称;
所述微服务的属性参数还包括部署描述信息。
8.根据权利要求1至6中任意一项所述的方法,其特征在于,所述微服务组合过程描述语言文件包括所述业务的业务标识、所述业务的业务描述信息、所述业务指定的微服务的微服务标识、所述业务指定的微服务的发布路径、所述业务指定的微服务的发布信息和所述业务的订阅方信息;
所述发布信息包括微服务功能描述信息和微服务输出描述信息;
所述订阅方信息包括订阅所述业务的订阅方的业务要求描述信息和所述订阅方的输入元素描述信息。
9.一种微服务组合装置,其特征在于,包括:
文件获取模块,用于获取微服务描述语言文件和微服务组合过程描述语言文件,所述微服务描述语言文件用于表征微服务的属性参数,所述微服务组合过程描述语言文件用于表征业务指定的多个微服务以及指定的所述多个微服务的组合关系;
解析模块,用于解析所述微服务组合过程描述语言文件,确定所述业务指定的所述多个微服务以及指定的所述多个微服务的组合关系;
加载模块,用于从与所述多个微服务对应的所述微服务描述语言文件中加载所述多个微服务的属性参数;
生成模块,用于根据加载的所述多个微服务的属性参数和指定的所述多个微服务的组合关系,生成所述业务的业务组件。
10.一种微服务组合设备,其特征在于,包括:处理器以及存储有计算机程序指令的存储器;
所述处理器执行所述计算机程序指令时实现如权利要求1至8中任意一项所述的微服务组合方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如权利要求1至8中任意一项所述的微服务组合方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110074448.8A CN112817565A (zh) | 2021-01-20 | 2021-01-20 | 微服务组合方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110074448.8A CN112817565A (zh) | 2021-01-20 | 2021-01-20 | 微服务组合方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112817565A true CN112817565A (zh) | 2021-05-18 |
Family
ID=75858357
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110074448.8A Pending CN112817565A (zh) | 2021-01-20 | 2021-01-20 | 微服务组合方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112817565A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113220461A (zh) * | 2021-05-28 | 2021-08-06 | 中国工商银行股份有限公司 | 一种分布式运行时介质的运行方法及装置 |
CN113360295A (zh) * | 2021-06-11 | 2021-09-07 | 东南大学 | 一种基于智能编排的微服务架构优化方法 |
CN113704188A (zh) * | 2021-07-07 | 2021-11-26 | 北京国电通网络技术有限公司 | 基于微服务架构的客户端应用集成方法及相关设备 |
WO2023159573A1 (zh) * | 2022-02-28 | 2023-08-31 | 西门子股份公司 | 接口映射方法、装置、电子设备和计算机可读介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160124742A1 (en) * | 2014-10-30 | 2016-05-05 | Equinix, Inc. | Microservice-based application development framework |
CN110532020A (zh) * | 2019-09-04 | 2019-12-03 | 中国工商银行股份有限公司 | 一种微服务编排的数据处理方法、装置及系统 |
CN111061463A (zh) * | 2019-12-26 | 2020-04-24 | 深圳前海环融联易信息科技服务有限公司 | 微服务组合应用方法、装置、计算机设备及存储介质 |
CN111078315A (zh) * | 2019-12-12 | 2020-04-28 | 拉扎斯网络科技(上海)有限公司 | 微服务编排、执行方法及系统、架构、设备、存储介质 |
CN111611089A (zh) * | 2020-02-07 | 2020-09-01 | 中国海洋大学 | 一种基于异步的声明式的微服务调度方法 |
-
2021
- 2021-01-20 CN CN202110074448.8A patent/CN112817565A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160124742A1 (en) * | 2014-10-30 | 2016-05-05 | Equinix, Inc. | Microservice-based application development framework |
CN110532020A (zh) * | 2019-09-04 | 2019-12-03 | 中国工商银行股份有限公司 | 一种微服务编排的数据处理方法、装置及系统 |
CN111078315A (zh) * | 2019-12-12 | 2020-04-28 | 拉扎斯网络科技(上海)有限公司 | 微服务编排、执行方法及系统、架构、设备、存储介质 |
CN111061463A (zh) * | 2019-12-26 | 2020-04-24 | 深圳前海环融联易信息科技服务有限公司 | 微服务组合应用方法、装置、计算机设备及存储介质 |
CN111611089A (zh) * | 2020-02-07 | 2020-09-01 | 中国海洋大学 | 一种基于异步的声明式的微服务调度方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113220461A (zh) * | 2021-05-28 | 2021-08-06 | 中国工商银行股份有限公司 | 一种分布式运行时介质的运行方法及装置 |
CN113360295A (zh) * | 2021-06-11 | 2021-09-07 | 东南大学 | 一种基于智能编排的微服务架构优化方法 |
CN113704188A (zh) * | 2021-07-07 | 2021-11-26 | 北京国电通网络技术有限公司 | 基于微服务架构的客户端应用集成方法及相关设备 |
WO2023159573A1 (zh) * | 2022-02-28 | 2023-08-31 | 西门子股份公司 | 接口映射方法、装置、电子设备和计算机可读介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112817565A (zh) | 微服务组合方法、装置、设备及存储介质 | |
CN109558202A (zh) | 基于小程序的列表页面开发方法、装置、设备及存储介质 | |
Kumar et al. | Inferring class level specifications for distributed systems | |
CN111367690A (zh) | 一种支持组合api服务调用方法及装置 | |
CN111176627A (zh) | 一种基于微服务的前后端分离的装置与方法 | |
US9058181B2 (en) | Conditional processing method and apparatus | |
CN112083926A (zh) | 一种Web用户界面生成方法及装置 | |
CN110782169A (zh) | 更新业务流程方法和装置 | |
US11409585B2 (en) | Automatic code generation for API mashups | |
CN111258940B (zh) | 配置方法、业务审核方法及系统、设备、存储介质 | |
CN112558968B (zh) | 一种资源树视图的生成方法、装置、设备及存储介质 | |
CN109976713A (zh) | 用于服务组装的脚本处理方法和装置 | |
CN114449063A (zh) | 一种报文处理方法、装置及设备 | |
US20130262487A1 (en) | Log management method, log management system, and information processing apparatus | |
CN112131869B (zh) | 基于多语言的文本检测方法及装置 | |
CN111459608A (zh) | 应用系统部署方法、装置、计算机设备及存储介质 | |
CN113391795A (zh) | 一种应用场景和软件开发包自适应映射的实现方法和系统 | |
CN112346790A (zh) | 多平台内容同步方法、装置、可读存储介质及终端设备 | |
CN109412931A (zh) | 利用即时通讯方式进行知识问答的方法、装置和终端设备 | |
CN116560665B (zh) | 数据生成和处理的方法和装置、信用卡营销规则引擎系统 | |
CN116204201B (zh) | 业务处理方法和装置 | |
CN112988170B (zh) | 应用显示的方法及装置 | |
CN115130039A (zh) | 一种网页渲染方法、装置、介质以及电子设备 | |
CN117951542A (zh) | 看板数据处理的方法、装置、电子设备和存储介质 | |
CN114138294A (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 |