返回顶部
首页 > 资讯 > 前端开发 > VUE >微服务模式下怎么实现多模块并行构建发布
  • 871
分享到

微服务模式下怎么实现多模块并行构建发布

2024-04-02 19:04:59 871人浏览 安东尼
摘要

这篇文章主要讲解了“微服务模式下怎么实现多模块并行构建发布”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“微服务模式下怎么实现多模块并行构建发布”吧!在微服务

这篇文章主要讲解了“微服务模式下怎么实现多模块并行构建发布”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“微服务模式下怎么实现多模块并行构建发布”吧!

在微服务项目中具有很多个服务模块,为了便于管理需要将项目规范化,使用gitLabGroup管理整个项目,每个project对应一个微服务,每个微服务对应一个jenkins  job。开始发布的时候需要我们在手动选择各个服务然后发布。模块很多的时候就不太方便了。创建一个Jenkins项目用来统一管理,绑定GitLab  group信息,然后调用Gitlab接口获取project信息。用户选择要发布的微服务,然后根据服务名称并行触发每个要发布服务的流水线进行构建和发布。

我们先来看看如何使用pipeline中的parallel语法,这里列举了两个例子:并行任务、并行阶段。

并行任务

首先我们需要定义每个任务的名称和对应的操作,可以通过一个Map类型参数实现。在这里定义了一个空的map,然后为这个map增加了两个任务分别为build01和build02,它们的操作是执行shell命令。最后通过parallel运行。

def tasks = [:]  //定义要并行的任务名称和任务 tasks["build01"] =  {sh "ls"}  tasks["build02"] =  {sh "ls"}  //并行 parallel tasks

并行阶段

并行stage也是一种经常用到的运行方式,我们可以使用这种方式解决不必要的时间浪费,尤其在各个平台运行自动化测试的时候,我们不必等到windows平台验证完成再进行linux系统中的验证。而是直接在各个平台中同时运行,加快了测试的速度。我们还可以使用failFast参数配置当其中一个任务失败其他任务是否一样失败,参数值为布尔类型(true  false)。

这个例子是jenkins官方提供的,大概的内容是并行在不同系统环境下进行自动化测试。

pipeline {     agent none     stages {         stage('Run Tests') {             parallel {                 stage('Test On Windows') {                     agent {                         label "windows"                     }                     steps {                         bat "run-tests.bat"                     }                     post {                         always {                             junit "**/TEST-*.xml"                         }                     }                 }                 stage('Test On Linux') {                     agent {                         label "linux"                     }                     steps {                         sh "run-tests.sh"                     }                     post {                         always {                             junit "**/TEST-*.xml"                         }                     }                 }             }         }     } }

主控Job实现

首先我们用静态数据来存储要发布的项目名称存储为一个List,定义一个Map用来存储并行任务。定义buildStatus展示项目错误信息(这里做了信息格式化)。使用build进行项目触发。这里会把每个失败的任务存储展示到流水线日志中。

def jobs = ["test2","demo-test-service"] def parallelMap = [:] def buildStatus = [:]  jobs.each{      println(it)      parallelMap[it] = {         try {             build job: "${it}",              parameters: [string(name: 'branchName', value: 'Dev')]         } catch(e){             println("${it}  " + e)             buildStatus[it] = e         }     } }  parallel parallelMap   //判断状态  for ( i in buildStatus.keySet()){      currentBuild.description = "构建信息"      currentBuild.description += ("\n项目名称->"  + i  + "错误信息:->"+ buildStatus[i]) }

运行效果

微服务模式下怎么实现多模块并行构建发布

基本上每个模块对应一个pipeline项目。有时候我们需要设置一个集中控制项目来根据设置的参数有序触发各个模块服务对应的流水线进行发布。在各个模块之间没有发布顺序的时候,我们可以使用Pipeline的Parallel语法进行项目的并行构建。加快发布速度,减少重复手工操作成本。

感谢各位的阅读,以上就是“微服务模式下怎么实现多模块并行构建发布”的内容了,经过本文的学习后,相信大家对微服务模式下怎么实现多模块并行构建发布这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: 微服务模式下怎么实现多模块并行构建发布

本文链接: https://lsjlt.com/news/84074.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 微服务模式下怎么实现多模块并行构建发布
    这篇文章主要讲解了“微服务模式下怎么实现多模块并行构建发布”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“微服务模式下怎么实现多模块并行构建发布”吧!在微服务...
    99+
    2024-04-02
  • 怎么使用Node.js的内置模块event实现发布订阅模式
    这篇文章主要介绍了怎么使用Node.js的内置模块event实现发布订阅模式的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用Node.js的内置模块event实现发布订阅...
    99+
    2024-04-02
  • spring发布订阅模式怎么实现
    在Spring中,可以使用Spring的事件机制来实现发布订阅模式。 创建事件对象:首先,需要创建一个事件对象,该对象包含了需要发...
    99+
    2024-02-29
    spring
  • node.js中怎么实现发布订阅模式
    node.js中怎么实现发布订阅模式,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。实例如下://导入内置模块 let Event...
    99+
    2024-04-02
  • Docker如何安装jenkins实现微服务多模块打包
    这篇文章主要介绍“Docker如何安装jenkins实现微服务多模块打包”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Docker如何安装jenkins实现微服务多模块打包”文章能帮助大家解决问题。...
    99+
    2023-07-02
  • 实战分布式医疗挂号系统之设置微服务搭建医院模块
    目录文章导读一、项目模块划分图二、开发前的准备工作1.医院设置数据库表设计2.搭建医院设置微服务模块三、医院设置微服务模块开发步骤1:生成表对应的实体类步骤2:创建Mapper步骤3...
    99+
    2024-04-02
  • 实战分布式医疗挂号系统之设置微服务接口开发模块
    目录文章导读一、框架调用流程二、医院设置表接口开发1.增2.删(1)逻辑删除记录(2)批量删除记录3.改(1)修改记录4.查(1)查询所有记录(2)条件查询带分页(3)根据id获取记...
    99+
    2024-04-02
  • go语言的高级并发模式怎么实现
    Go语言的高级并发模式可以通过以下几种方式实现: 基于通道的并发模式:Go语言通过通道(Channel)来实现并发的通信和同步。...
    99+
    2023-10-27
    go语言
  • 微信小程序实现用户登录模块服务器搭建
    我选用的是node.js来搭建服务器,没有安装的小伙伴可以参考我的node.js其他博客。 服务器安装与配置 初始化项目,将会自动创建package.json配置文件。 np...
    99+
    2024-04-02
  • Docker安装jenkins实现微服务多模块打包的示例代码
    目录1.安装2.初始化3.配置jenkins3.1 安装Maven3.2 配置Maven插件3.3 安装svn插件4. 创建自动化部署任务4.1 配置清理旧的构建4.2 创建svn账密凭证4.3 填写build命令4.4 首次构建5. 配置...
    99+
    2024-04-02
  • 怎么实现Java模块与inter-module Maven构建测试依赖关系
    这篇文章主要介绍“怎么实现Java模块与inter-module Maven构建测试依赖关系”,在日常操作中,相信很多人在怎么实现Java模块与inter-module Maven构建测试依赖关系问题上存在疑惑,小编查阅了各式资料,整理出简...
    99+
    2023-06-02
  • 分布式开发医疗挂号系统数据字典模块web前后端怎么实现
    这篇文章主要介绍了分布式开发医疗挂号系统数据字典模块web前后端怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇分布式开发医疗挂号系统数据字典模块web前后端怎么实现文章都会有所收获,下面我们一起来看看吧...
    99+
    2023-06-30
  • 怎么使用gulp搭建本地服务器并实现模拟ajax
    小编给大家分享一下怎么使用gulp搭建本地服务器并实现模拟ajax,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!可以实现的功能有:     ...
    99+
    2024-04-02
  • 1.6.C++项目:仿muduo库实现并发服务器之channel模块的设计
    项目完整版在: 文章目录 一、channel模块:事件管理Channel类实现二、提供的功能三、实现思想(一)功能(二)意义(三)功能设计 四、代码(一)框架(二)完整 一、cha...
    99+
    2023-10-21
    服务器 c++ java
  • 微服务架构中分布式事务实现方案怎样何取舍
    提起微服务架构,不可避免的两个话题就是服务治理和分布式事务。数据库和业务模块的垂直拆分为我们带来了系统性能、稳定性和开发效率的提升的同时也引入了一些更复杂的问题,例如在数据一致性问题上,我们不再能够依赖数据库的本地事务,对于一系列的跨库写入...
    99+
    2023-06-05
  • C#基于自定义事件EventArgs怎么实现发布订阅模式
    这篇文章主要介绍“C#基于自定义事件EventArgs怎么实现发布订阅模式”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C#基于自定义事件EventArgs怎么实现发布订阅模式”文章能帮助大家解决问...
    99+
    2023-06-30
  • Jenkins+Gitee怎么实现.NET微服务架构CI/CD自动构建
    本篇内容介绍了“Jenkins+Gitee怎么实现.NET微服务架构CI/CD自动构建”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!CI/C...
    99+
    2023-06-22
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作