zoukankan      html  css  js  c++  java
  • 哔哩哔哩三面:如何用Jenkins来实现微服务架构下的自动化部署?

    前言

    在微服务架构中,随着服务越来越多,服务的打包部署就会成为一个相当麻烦的事情。比如说我的mall-swarm项目目前就有8个服务需要部署,有没有什么办法让我们部署一次之后,只要点击执行就可以自动部署呢?当然有!下面我们使用Jenkins来完成一个微服务架构中的自动化部署工作。

    执行脚本准备

    首先我们先把需要远程执行的脚本准备好。

    • 脚本文件都存放在了mall-swarm项目的/document/sh目录下:

    • 上传脚本前在IDEA中修改所有脚本文件的换行符格式为LF,否则脚本会无法执行;
    • 微服务学习笔记共享地址:Spring最新全家桶合集

    • 将所有脚本文件上传到指定目录,这里我们上传到/mydata/sh目录下;

    • 将所有脚本文件都修改为可执行文件:
    chmod +x ./mall-*
    复制代码
    

    Jenkins中创建任务

    接下来我们将通过在Jenkins中创建任务来实现自动化部署。由于我们的mall-swarm是个多模块的项目,部署上面和曾经的单模块项目还是有所区别的。

    mall-admin

    由于各个模块的执行任务的创建都大同小异,下面将详细讲解mall-admin模块任务的创建,其他模块将简略讲解。

    • 首先我们选择构建一个自由风格的软件项目,然后输入任务名称为mall-admin,配置其Git仓库地址,这里我直接使用了Gitee上面的地址:

    • 之后我们创建一个构建,构建mall-swarm项目中的依赖模块,否则当构建可运行的服务模块时会因为无法找到这些模块而构建失败;
    # 只install mall-common,mall-mbg,mall-security三个模块
    clean install -pl mall-common,mall-mbg,mall-security -am
    复制代码
    
    • 依赖项目构建示意图:

    • 再创建一个构建,单独构建并打包mall-admin模块:

    • 添加一个构建来通过SSH去执行远程任务,用于执行mall-admin的运行脚本:

    • 点击保存,完成mall-admin的执行任务创建。

    mall-registry

    mall-registry和其他模块与mall-admin创建任务方式基本一致,只需修改构建模块时的pom.xml文件位置和执行脚本位置即可。

    • 我们可以直接从mall-admin模块的任务复制一个过来创建:

    • 修改第二个构建中的pom.xml文件位置,改为:${WORKSPACE}/mall-registry/pom.xml

    • 修改第三个构建中的SSH执行脚本文件位置,改为:/mydata/sh/mall-registry.sh

    • 点击保存,完成mall-registry的执行任务创建。

    其他模块

    其他模块的执行任务创建,参考mall-admin和mall-registry的创建即可。

    任务创建完成

    模块启动顺序问题

    关于各个模块的启动顺序问题,mall-registry模块必须第一个启动,mall-config模块必须第二个启动,其他模块没有启动顺序限制。

    推荐启动顺序:

    • mall-registry
    • mall-config
    • mall-monitor
    • mall-gateway
    • mall-admin
    • mall-portal
    • mall-search
    • mall-demo

    总结

    我们通过在Jenkins中创建任务,完成了微服务架构中服务的打包部署工作,这样当我们每次修改完代码后,只需点击启动任务,就可以实现一键打包部署,省去了频繁打包部署的麻烦。

    项目地址

    github.com/macrozheng/…|

    原文链接:https://juejin.cn/post/6844904023816929294

  • 相关阅读:
    希望走过的路成为未来的基石
    第三次个人作业--用例图设计
    第二次结对作业
    第一次结对作业
    第二次个人编程作业
    第一次个人编程作业(更新至2020.02.07)
    Springboot vue 前后分离 跨域 Activiti6 工作流 集成代码生成器 shiro权限
    springcloud 项目源码 微服务 分布式 Activiti6 工作流 vue.js html 跨域 前后分离
    spring cloud springboot 框架源码 activiti工作流 前后分离 集成代码生成器
    java代码生成器 快速开发平台 二次开发 外包项目利器 springmvc SSM后台框架源码
  • 原文地址:https://www.cnblogs.com/QLCZ/p/15079794.html
Copyright © 2011-2022 走看看