目录
一、环境部署
服务器名称 | IP地址 | 软件 |
代码仓库服务器 | 192.168.72.14 | Gitlab |
持续集成服务器 | 192.168.72.15 | Jenkins,Docker |
Docker Harbor仓库服务器 | 192.168.72.16 | Docker,Harbor |
部署服务器 | 192.168.72.17 | Docker |
二、微服务架构
项目架构:前后端分离
后端技术: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微服务
三、本地微服务后端搭建
主要是测试微服务是否能运行
1.配置项目环境
①Windows配置Maven环境
这边的Maven版本是3.8.4
配置环境变量
保存后,调出CMD输入mvn -v,查看Maven是否安装成功。
修改Maven配置文件,更改组件下载地址和库地址。
C:\APP\apache-maven-3.8.4\conf
以记事本方式打开
添加下面代码进去,在<mirrors></mirrors>之间添加
<mirror>
<id>aliyunmaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>https://maven.aliyun.com/repository/public </url>
</mirror>
找到<localRepository>/path/to/local/repo</localRepository>
更改为自己创建的存放组件的地址
<localRepository>C:\APP\repo</localRepository>
保存即可
②配置项目
我这边是把项目放在了Idea的项目目录位置下
打开项目
配置Maven,下载Springboot组件
配置好后等待下载完成
下载完成之后,继续配置,接者点击各个文件夹下的文件,查找还有没有红色报错。
解决:解决SpringBoot启动类报错can not resolve method 'run(java.lang.class,String [])'问题
2.数据库配置
①安装数据库
这边数据库的版本是5.7.17
②导入数据
配置mysql环境变量
找到mysql的bin目录,复制
win+r调出cmd,输入数据库命令进入MySQL
创建两个库tensquare_gathering和tensquare_user
create database tensquare_gathering;
create database tensquare_user;
3.启动微服务
①修改各个服务的yml文件
除了eureka服务,其他的都改为localhost(本地)
eureka
# 单机版
server:
port: 10086
#基本服务器信息
spring:
application:
name: eureka-server #服务ID
#enreka服务器配置
eureka:
client:
fetch-registry: false #单机版关闭enreka相互注册
register-with-eureka: false
service-url:
defaultZone: http://localhost:${server.port}/eureka #暴露eureka服务访问地址
server:
enable-self-preservation: false #关闭自我保护
admin_service
gathering
zuul
②开启服务
按照eurekaàzuulàadmin_serviceàgathering,顺序开启,运行的是java目录下的可运行文件
各个服务可运行的文件的名字
EurekaServerApplicationàZuulApplicationàAdminApplicationàGatheringApplication
运行完了之后输入http://localhost:10086查看是否可以开启
下面可以看到三个服务都以开启
4.测试微服务
①测试获取数据
安装postman工具
运行并打开
输入URL:http://localhost:10020/admin/admin/login
②测试打包jar包
停止所有服务
打包发现错误
原因:没有配置JDK目录
复制以下代码到根目录中的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>
再次打包,发现错误,代表已有这个组件,删除刚才添加的代码中的一段,如下
<plugin>
<!--提供打包(将应用打包成可执行的jar包)-->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
删除完后重新打包
打包成功,jar在每个服务的target目录下
③测试单独服务的jar包运行
在项目目录下找到jar包
到文件目录下,在地址栏输入cmd,运行cmd,输入java -jar xxx.jar运行
注意:运行前,关闭idea中的服务,以免端口冲突
在浏览器中输入http://localhost:10086
开启成功