一、持续集成流程说明
1. 大致流程解析
大致流程如下:
- 开发人员每天把代码提交到 Gitlab 代码仓库
- Jenkins从 Gitlab中拉取项目源码,编译并打成jar包,然后构建成Docker镜像,将镜像上传到Harbor私有仓库。
- Jenkins发送SSH远程命令,让生产部署服务器到Harbor私有仓库拉取镜像到本地,然后创建容器。
- 最后,用户可以访问到容器
二、服务器列表
服务器名称 | IP 地址 | 安装的软件 |
---|
代码托管服务器 | 192.168.74.11 | Gitlab | 持续集成服务器 | 192.168.74.8 | Jenkins,Maven,Git,JDK,Sonarqube,Docker18.06.1-ce | Docker 仓库服务器 | 192.168.74.6 | JDK,Tomcat,Docker18.06.1-ce, Harbor1.9.2 | 生产部署服务器 | 192.168.74.7 | Docker18.06.1-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——》业务活动
二、微服务部署
1. 导入微服务项目包
微服务项目包解压,目录在idea中打开,idea会自动下载相关组件插件(等待时间较长)
等待下载完成
报错解决:
SpringBoot启动类报错can not resolve method 'run(java.lang.class,String [])'问题
2. Windows本地配置maven环境
添加两个变量
修改配置文件组建下载地址设置
<mirror>
<id>aliyunmaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/repository/public</url>
</mirror>
修改idea指向maven
点击刷新更新 在pom.xml文件中添加构建条件 要注意格式对齐
<build>
<plugins>
<plugin>
<!--提供打包(将应用打包成可执行的jar包)-->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<!-- 指定maven编译的jdk版本 -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<verbose>true</verbose>
<fork>true</fork>
<!--jdk地址-->
<executable>C:/Program Files/Java/jdk1.8.0_152/bin/javac</executable>
</configuration>
</plugin>
</plugins>
</build>
3. 安装MySQL数据库
- 本地数据库导入(windows本地安装mysql5.7)
安装完成以后需要配置环境变量
验证 把这2个文件导入到MySQL数据库中
先创建2个库
use tensquare_gathering;
source D:/tensquare_gathering.sql;
use tensquare_user;
source D:/tensquare_user.sql;
4. 安装 Visual Studio Code
5. 安装 node.js
添加环境变量 验证一下 Vscode终端中运行:npm run dev,会发现报错 解决方法:
npm install -g cnpm --registry=https://registry.npm.taobao.org
使用cmd切换到tensquareAdmin目录下执行 cnpm uninstall node-sass 再执行安装命令 cnpm install node-sass
到上述部分,前端部分需要安装部署的已经全部完成
6. 配置启动Eureka注册中心
修改配置文件application.yml
server:
port: 10086
spring:
application:
name: eureka-server
eureka:
client:
fetch-registry: false
register-with-eureka: false
service-url:
defaultZone: http://localhost:${server.port}/eureka
server:
enable-self-preservation: false
浏览器访问 http://localhost:10086
7. 配置启动网关zuul
8. 配置启动权限管理admin_service
9. 配置启动业务模块
到此,微服务的所有服务都已开启成功
三、微服务测试
1. 测试后端服务
获取数据库信息成功
2. 测试前端服务
cnpm run dev
登录平台:http://localhost:9528
这里可以看到数据库中存储的信息,表明前端和数据库对接成功
四、对微服务中的服务进行打包
1. IDEA中进行jar包构建
这里如果提示mvn无法识别则需要重启IDEA再进行打包
java -jar tensquare_eureka_server-1.0-SNAPSHOT.jar
3. 浏览器访问
使用浏览器访问 http://localhost:10086/
由此可以看出,对于打的jar包是可以单独在本地进行运行的
|