目录
一,Jenkins+Docker+SpringCloud 持续集成流程说明
大致流程说明:
- 开发人员每天把代码提交到 Gitlab 代码仓库。
- Jenkins 从 Gitlab 中拉取项目源码,编译并打成 jar 包,然后构建成 Docker 镜像,将镜像上传到 Harbor 私有仓库。
- Jenkins 发送 SSH 远程命令,让生产部署服务器到 Harbor 私有仓库拉取镜像到本地,然后创建容器。
- 最后,用户可以访问到容器。
二,服务器列表
服务器名称 | IP 地址 | 安装的软件 |
---|---|---|
代码托管服务器 | 192.168.10.20 | Gitlab |
持续集成服务器 | 192.168.10.30 | Jenkins,Maven,Git,JDK,Sonarqube,Docker20.10.12-ce |
Docker 仓库服务器 | 192.168.10.40 | JDK,Tomcat,Docker20.10.12-ce,Harbor1.9.2 |
生产部署服务器 | 192.168.10.50 | Docker20.10.12-ce |
三、SpringCloud 微服务源码概述
- 项目架构:前后端分离
- 后端技术栈:SpringBoot + SpringCloud + SpringDataJpa(Spring 全家桶)
- 微服务项目结构:
tensquare_parent:父工程,存放基础配置
tensquare_common:通用工程,存放工具类
tensquare_eureka_server:SpringCloud 的 Eureka 注册中心
tensquare_zuul:SpringCloud 的网关服务
tensquare_admin_service:基础权限认证中心,负责用户认证(使用 JWT 认证)
tensquare_gathering:一个简单的业务模块,活动微服务相关逻辑
数据库结构:
tensquare_user:用户认证数据库,存放用户账户数据。对应 tensquare_admin_service 微服务。
tensquare_gathering:活动微服务数据库。对应 tensquare_gathering 微服务。
微服务配置分析:
tensquare_eureka
tensquare_zuul
tensquare_admin_service
tensquare_gathering
四、SpringCloud 微服务部署(后端)
4.1 微服务项目导入 IDEA
本地运行微服务,使用 IDEA 打开项目。
(1) 自动下载相关依赖组件
微服务项目包解压,目录在 idea 中打开,idea 会自动下载相关组件插件(等待时间较长)。
时间很长,耐心等待。
安装完成。
依赖组件真正下载完成不应该有任何红色波浪线。因为引导模板文件和相应服务器在美国,可能下载失败,下载失败点击循环重新下载组件。有 VPN 推荐使用日本节点下载。
(2) 检查 JDK 版本
解决 SpringBoot 启动类报错 can not resolve method ‘run(java.lang.class,String [])’ 问题
Project 和所有模块都要换成自己的 JDK。
更换 JDK 版本后红色波浪线应该消失。
4.2 本地数据库导入
(1) Windows 安装 MySQL5.7.17