0%

jenkins自动构建配置:代码提交后自动触发构建的两种方案

在实际开发中,手动点击 “立即构建” 显然不够高效。理想的流程是:当代码推送到 Git 仓库(如 Gitee、GitHub)后,Jenkins 能自动检测变动并触发构建。本文将介绍两种常用的自动构建方案,帮你实现代码提交即自动化构建的闭环。

方案一:定时轮询

这是最简单的自动触发方式,通过定时检查 Git 仓库是否有代码变动,如果检测到新提交则自动执行构建。适合对实时性要求不高、或仓库访问受限的场景。

配置步骤

  1. 进入你的 Jenkins 项目配置页面(点击项目名称 → 左侧「Configure」)。

  2. 滚动到「Build Triggers」(构建触发器)部分,勾选「Poll SCM」。

  3. 在输入框中填写

    定时表达式,定义轮询频率。例如:

    1
    H/5 * * * *

    表示 “每 5 分钟检查一次仓库变动”(H 是随机偏移量,避免所有项目同时触发导致服务器压力集中)。这里的配置是指五分钟轮询检测一下git仓库是否有变动,如果这段时间有提交的话,会自动进行构建,如果该时间段内没有新的提交,则不会进行构建

    自动构建

定时表达式规则

阅读全文 »

ZooKeeper 集群结构与 Zab 协议:分布式一致性的基石

ZooKeeper 作为分布式协调服务,其高可用性和强一致性依赖于精巧的集群架构和 Zab 协议。集群通过 Leader-Follower 角色分工实现负载均衡与容错,而 Zab 协议则保证了数据在分布式节点间的一致性同步。以下深入解析集群结构、Zab 协议的工作原理及核心流程。

集群节点角色与架构

ZooKeeper 集群采用主从架构,节点分为三种角色,各司其职以保证集群稳定运行:

角色 功能描述
Leader 1. 处理所有写请求(事务请求),生成全局唯一的 zxid; 2. 发起投票并协调 Follower 完成数据同步; 3. 负责 Leader 选举过程中的投票与决策。
Follower 1. 处理读请求,转发写请求给 Leader; 2. 参与 Leader 选举(投票); 3. 同步 Leader 的数据,保证与 Leader 状态一致。
Observer 1. 仅处理读请求,不参与 Leader 选举和写请求投票; 2. 同步 Leader 数据,扩展集群读能力(适合读多写少场景)。

集群核心特性

  • 过半存活原则:集群只要有超过半数的节点存活(如 3 节点集群至少 2 个存活),即可正常提供服务,保证分区容错性。
  • 数据一致性:所有节点在内存中维护相同的数据集,Leader 通过 Zab 协议将写操作同步到 Follower/Observer,确保全局数据一致。

Zab 协议:分布式一致性的核心协议

Zab(ZooKeeper Atomic Broadcast)协议是 ZooKeeper 实现分布式一致性的底层协议,其核心目标是:在分布式环境下,保证事务操作的原子性和顺序性,最终使所有节点的数据达成一致

阅读全文 »

微服务(Microservices):分布式架构的精细化演进

微服务是近年来软件架构领域的核心概念之一,其本质是将复杂系统拆分为一系列独立、自治的小型服务,通过轻量级通信机制协同工作。它并非凭空出现,而是针对单体架构的局限性逐步演化而来的架构模式。

为什么需要微服务?—— 单体架构的困境

传统单体架构(将所有功能打包为一个应用)在业务规模扩大后逐渐暴露以下问题,成为微服务提出的核心动因:

技术栈受限

单体应用通常绑定单一技术栈(如全 Java 开发),若某模块更适合用其他技术(如数据分析用 Python、高并发场景用 Golang),则难以实现。而微服务允许不同服务选择最适合的技术栈,实现 “技术栈解耦”。

部署成本高

单体应用中,即使仅修改一个小模块(如修复一个订单计算 bug),也需重新打包整个应用并部署,大型应用的部署可能耗时数小时,且风险高(一个模块的问题可能导致整个应用崩溃)。微服务中每个服务独立部署,局部修改仅需部署对应服务,部署效率提升 10 倍以上。

扩展性瓶颈

单体应用的所有模块共享服务器资源(CPU、内存、数据库连接),某一模块的高并发(如商品详情页流量突增)会抢占其他模块资源(如订单系统),导致 “一损俱损”。微服务可针对高负载服务单独扩容(如给商品服务增加服务器),资源利用率更优。

团队协作低效

当团队规模超过 10 人,单体应用的代码冲突、分支管理、测试流程会变得复杂,多人同时开发时需频繁等待他人提交,迭代速度放缓。微服务可按业务拆分给独立团队,实现 “团队自治”。

什么是微服务?—— 核心定义与拆分原则

微服务的概念由马丁・福勒(Martin Fowler)于 2014 年正式提出,其核心特征可概括为:

阅读全文 »

jenkins构建与部署全流程指南

配置jenkins

配置全局工具

Jenkins 的全局工具配置允许你定义各种构建工具的路径,这对于后续的项目构建至关重要。进入 Jenkins 控制台,点击左侧菜单栏的 “Manage Jenkins”,然后选择 “Global Tool Configuration”。在这里,你可以配置 Maven、JDK、Git 等工具。根据自己的项目需求,指定这些工具的安装路径或让 Jenkins 自动安装。

配置-全局工具配置入口

插件管理

Jenkins 的强大之处在于其丰富的插件生态系统。以使用 Gitee 作为源代码管理为例,你需要安装 Gitee 插件:

  1. 进入 “Manage Jenkins”
  2. 选择 “Manage Plugins”
  3. 切换到 “Available” 选项卡
  4. 在右侧的 Filter 输入框中输入 “Gitee”
  5. 勾选搜索结果中的 Gitee 插件并点击 “Install without restart”

配置-插件管理入口

系统配置

安装完 Gitee 插件后,需要配置 Gitee 连接:

  1. 前往 Jenkins -> Manage Jenkins -> Configure System -> Gitee Configuration -> Gitee connections
  2. 在 “Connection name” 中输入标识名称,如 “Gitee”
  3. Gitee host URL 中输入 Gitee 完整 URL地址: https://gitee.com (Gitee 私有化客户输入部署的域名)
  4. 配置 Credentials:
    • 点击 “Add” 按钮,选择 Jenkins
    • Domain 选择 “Global credentials”
    • Kind 选择 “Gitee API Token”
    • Scope 选择所需范围
    • Gitee API Token 输入你的 Gitee 私人令牌,获取地址:https://gitee.com/profile/personal_access_tokens
    • 为凭证设置 ID 和描述
    • Credentials 选择配置好的 Gitee APIV5 Token
      • 点击 Advanced ,可配置是否忽略 SSL 错误(视您的Jenkins环境是否支持),并可设置链接测超时时间(视您的网络环境而定)
      • 点击 Test Connection 测试链接是否成功,如失败请检查以上步骤。

配置-系统配置

构建新项目

完成基础配置后,就可以开始创建新的构建项目了:

创建新项目

  1. 在 Jenkins 首页,点击 “New Item”
  2. 输入项目名称,选择 “Freestyle project” 并点击 “OK”

构建-入口

配置源码管理

在项目配置页面的 “GitHub 组织” 部分:

  1. 选择 Git
  2. 输入 Gitee 项目的 URL
  3. 选择之前配置的 Gitee 凭证
  4. 指定要构建的分支

构建-源码管理

配置构建步骤

以 Maven 项目为例:

  1. 在 “Build” 部分,点击 “Add build step” 并选择 “Invoke top-level Maven targets”
  2. 选择之前配置的 Maven 版本
  3. 在 “Goals and options” 中输入 “clean install”

配置完成后,点击 “Save” 保存项目配置。

构建-构建配置

执行构建

保存项目配置后,就可以手动触发构建:

  1. 在项目页面,点击左侧的 “Build Now”
  2. 构建过程中,可以点击左侧的构建编号查看构建进度
  3. 点击 “Console Output” 查看详细的构建日志

构建-开始构建

构建的时候可以查看构建日志

点击构建的项目序号

构建

点控制台输出就可以看到构建的日志了

构建-控制台输出

构建完成之后可以看到工作空间中会有构建完成的项目

构建-工作空间

部署应用

Jenkins 支持多种部署方式,下面介绍 WAR 包和 JAR 包的部署方法。

war包部署

WAR 包通常部署到 Servlet 容器如 Tomcat 中。首先需要安装 “Deploy to container” 插件:

  1. 进入 “Manage Plugins”
  2. 安装 “Deploy to container” 插件

部署-插件

回到项目的配置中,增加构建后操作步骤

然后在项目配置中添加构建后操作:

  1. 在项目配置页面,滚动到 “Post-build Actions” 部分

  2. 点击 “Add post-build action” 并选择 “Deploy war/ear to a container”

    部署-构建后操作

  3. 配置 WAR 文件路径和目标容器

    部署-部署配置

  4. 需要在 Tomcat 的 tomcat-users.xml 中配置用户权限:

1
2
3
4
5
6
<!-- jenkins使用 -->
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="jenkins_user" password="tomcat" roles="manager-gui,manager-script,manager-jmx,manager-status"/>

配置完成之后启动tomcat即可

jar包部署

JAR 包的部署通常通过归档成品实现:

  1. 在项目配置的 “Post-build Actions” 部分

  2. 选择 “Archive the artifacts”

  3. 在 “Files to archive”选择需要存档的文件,我这里使用的是**/target/*.jar

    jar包归档

  4. 构建完成后,JAR 包会被归档到 Jenkins 服务器

    归档文件

这样,通过 Jenkins 你就可以实现从代码拉取、构建到部署的全自动化流程。

jenkins 入门指南:从安装到启动的完整教程

持续集成(CI)是现代开发流程中的核心环节,而 Jenkins 作为一款开源的 CI 工具,凭借简单安装、开箱即用、插件丰富、易于扩展等优势,成为开发者的首选工具。它能自动连接代码仓库拉取源码、执行构建、生成测试报告、归档程序包,极大提升开发效率。本文将以 Mac 系统为例,带你一步步完成 Jenkins 的下载、安装与启动,快速踏上自动化构建之路。

下载jenkins

Jenkins 支持 Windows、macOS、Linux 等主流系统,本文以 macOS + Homebrew 为例演示安装流程(其他系统可前往 Jenkins 官方下载页 获取对应版本)。

前置条件

确保你的 Mac 已安装 Homebrew(包管理工具),如果未安装,可先执行以下命令:

1
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

安装命令

通过 Homebrew 安装 Jenkins 非常便捷,支持安装最新稳定版或指定版本:

1. 安装最新稳定版(推荐)

Jenkins 分为 jenkins(最新版)和 jenkins-lts(长期支持版,更稳定),建议选择 LTS 版:

1
2
# 安装长期支持版(LTS)
brew install jenkins-lts
2. 安装特定版本

如果需要指定版本(例如 2.440.1),可通过版本号安装:

1
2
# 替换 YOUR_VERSION 为具体版本号,如 jenkins-lts@2.440.1
brew install jenkins-lts@YOUR_VERSION
阅读全文 »