一种微服务构建方法及系统技术方案

技术编号:34328118 阅读:13 留言:0更新日期:2022-07-31 01:32
本申请提供了一种微服务构建方法及系统,生成待构建的微服务文档,微服务文档包括需要重新构建的目标微服务;根据待构建的微服务文档,确定流水线上的每个微服务是否属于目标微服务;针对属于目标微服务的微服务,执行微服务的构建作业;针对不属于目标微服务的微服务,不执行微服务的构建作业。本申请实现了实现有选择性地构建微服务,而且无需修改流水线底层代码,节省了构建资源,缩短了微服务的构建时间。建时间。建时间。

【技术实现步骤摘要】
一种微服务构建方法及系统


[0001]本申请主要涉及软件开发领域,特别涉及一种微服务构建方法及系统。

技术介绍

[0002]DevOps是development和Operations的组合,它是一组过程、方法与系统的统称,可以提高开发团队和运营团队之间的协作,并在项目的整个开发生命周期中提供持续开发、持续测试、持续集成、持续部署的能力。
[0003]微服务是一种软件架构风格,区别于模块之间紧密耦合的单体应用程序,采用微服务架构的应用程序以多个松散耦合的微服务组合而成,每个微服务之间相对独立并通过简单的接口与其他微服务通信。微服务可以用于加快应用开发速度,使用Java构建的微服务架构也非常常见,如今,大型商业系统多采用微服务的开发方式,针对微服务架构的Java项目,有必要开发特定的DevOps流水线。
[0004]目前,主流的DevOps工具,如TFS(Team Foundation Server),Jenkins等已经可以实现对单体Java项目的流水线构建,可以实现每次提交代码时,自动对项目进行自动化测试、自动化构建、自动化部署等操作。对于微服务架构的java项目,上述工具并没有特定的解决的方式,通常可以采取搭建多条流水线或者在一条流水线中建立多个代理作业的方式,实现对所有微服务的一键构建。
[0005]然而,上述构建方法在应用于微服务架构的Java项目时,都存在灵活性较差的问题,流水线一旦建成,便不能随意更改,修改需要构建的微服务则需要对流水线的底层代码进行逐一修改,否则,每次构建都只能对流水线中配置好的全部微服务进行构建,即使在相邻两次构建之间可能会存在部分微服务代码没有改变的情况,也依然会对这些微服务进行重复构建,造成了构建资源的浪费,也可能由于多次构建造成流水线堵塞,甚至影响到开发效率。

技术实现思路

[0006]有鉴于此,本申请提供了一种微服务构建方法及系统,通过对DevOps工具集构建的流水线进行改造,实现有选择性地构建微服务,节省构建资源。
[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]根据所述历史日志,确定所述参考微服务。
[0037]由此可见,本申请实施例有如下有益效果:
[0038]本申请基于流水线构建微服务,通过生成待构建的微服务文档,其中,微服务文档包括需要重新构建的目标微服务;根据待构建的微服务文档,确定流水线上的每个微服务是否属于目标微服务,针对属于目标微服务的微服务,执行对应的构建作业,针对不属于目标微服务的微服务,则不执行对应的构建作业。本申请通过从待构建的微服务文档中,确定出需要重新构建的微服务,从而仅对需要重新构建的微服务执行构建作业,对不需要重新构建的微服务则不执行构建作业,实现有选择性地构建微服务,而且无需修改流水线底层代码,节省了构建资源,缩短了微服务的构建时间。
附图说明
[0039]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0040]图1为本申请实施例提供的一种微服务构建方法的流程图;
[0041]图2为本申请实施例提供的一种主动模式下的微服务构建流程图;
[0042]图3为本申请实施例提供的一种自动模式下的微服务构建流程图;
[0043]图4为本申请实施例提供的一种微服务本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种微服务构建方法,其特征在于,所述方法包括:生成待构建的微服务文档,所述微服务文档包括需要重新构建的目标微服务;根据所述待构建的微服务文档,确定流水线上的每个微服务是否属于所述目标微服务;针对属于所述目标微服务的所述微服务,执行所述微服务的构建作业;针对不属于所述目标微服务的所述微服务,不执行所述微服务的构建作业。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:根据预先编写的配置文件,确定所述流水线的工作模式,所述工作模式用于确定所述微服务文档的生成方式,所述工作模式包括主动模式和自动模式。3.根据权利要求2所述的方法,其特征在于,所述生成待构建的微服务文档,包括:在所述主动模式下,读取所述配置文件中的微服务列表,所述微服务列表包括待构建的微服务;根据所述微服务列表,生成所述待构建的微服务文档。4.根据权利要求2所述的方法,其特征在于,所述生成待构建的微服务文档,包括:在所述自动模式下,读取参考微服务,所述参考微服务是在所述生成微服务文档之前、完成上一次的微服务构建操作之后代码发生调整的微服务;根据所述参考微服务,生成所述待构建的微服务文档。5.根据权利要求4所述的方法,其特征在于,所述在所述自动模式下,读取参考微服务,包括:在所述自动模式下,读取历史日志,所述历史日志记录有所述微服务在所述生成微服务文档之前、完成上一次的微服务构建操作之后的代码调整;根据所述历史日志,确定所述参考微服务。6.一种微服务构建系统,其特征在于,所述系统包括构建总控层、构建控制层和构建执行层;所述构建总控层,用于生成待构建的...

【专利技术属性】
技术研发人员:周健易王晓龙
申请(专利权)人:中国农业银行股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1