参考文章、视频
Jhipster官方文档
JHipster 7入门
微服务学习-Jhipster框架
操作系统与相关工具介绍
本文档的所有内容都是基于CentOS7.9实现的。该操作系统可以通过以下两种方式搭建:
项目搭建过程中,使用到的核心工具有:
- Xshell 7 - 与Linux系统建立SSH连接,输入指令对系统进行操作;
- Xftp 7 - 与Linux系统建立SFTP连接,用可视化的方式操作系统文件;
- VMware - 创建Linux虚拟机(若购买了云服务器,则无需安装该软件)。
在开始阅读本文之前,需要先拥有一个操作系统为CentOS7的服务器或虚拟机,并安装好相应的工具或其替代品。
1. 依赖安装
在CetnOS7.9操作系统下,利用Jhipster创建项目之前,需要安装以下依赖:
-
通过yum安装: – Git – Node.js – screen – jdk11+ – mysql(MariaDB) -
通过npm安装: – generator-jhipster
1.1. Git、Node.js和screen的安装
Git和Node.js可直接通过以下指令安装。
yum install -y git
yum install -y nodejs
yum install -y screen
若提示No package xxx avaliable,可以尝试先安装epel源:
yum install -y epel-release
1.2. jdk11的安装
1.2.1. 检测是否存在旧版本
在安装jdk11之前,需要先检测系统是否已安装jdk。通过下方指令进行检测:
java -version
-
若提示command not found,则说明不存在旧版本,就可以开始安装JDK11; -
若有输出版本信息,且为旧版,就需要通过下方指令卸载旧版JDK,才能安装JDK11: rpm -e --nodeps java* # 卸载和java有关的所有依赖
1.2.2. 安装JDK11
输入下方指令,列出所有可安装的java-11
yum list | grep java-11
输入下方指令进行安装
yum -y install java-11-openjdk.x86_64
yum -y install java-11-openjdk-devel.x86_64
yum -y install java-11-openjdk-headless.x86_64
1.3. 安装mysql(mariaDB)
Linux中安装MySQL可参考文章 Linux服务器 | 03.Linux服务器安装MySQL;
若无法安装MySQL,说明当前版本的CentOS已不支持安装MySQL,需要安装MariaDB,可参考文章 Linux服务器 | 10.linux服务器安装MariaDB。
需要注意的是,在配置完账号密码后,不要忘了使MySQL允许被所有IP访问:
use mysql #访问mysql库
update user set host = '%' where user = 'root'; #使root能再任何host访问
FLUSH PRIVILEGES; #刷新
如果在update时报错:Duplicate entry ‘%-root’ for key ‘PRIMARY’,说明有多个user = 'root’的记录,此时进行查询:
select host from user where user = 'root';
若结果中有host = "%"的记录,就可以不用再配置了。
1.4. 安装generator-jhipster
输入下方指令安装jhipster。本文使用的jhipster版本为v7.8.1
npm install -g generator-jhipster
2. Jhipster创建、配置和启动单体项目
2.1. Jhipster单体项目的创建
JHipster官方教程
在一切准备就绪后,我们可以jhipster先创建一个单体项目。这里使用 Xshell 作为SSH连接工具进行演示:
-
[ 连接服务器 ] 使用Xshell与服务器建立SSH连接。 -
[ 创建文件夹 ] 首先创建项目文件夹(/jhipster-project/test-monolithic),并进入到文件夹中。 mkdir /jhipster-project/test-monolithic
cd /jhipster-project/test-monolithic
-
[ 开启引导 ] 输入jhipster指令,开始引导。 jhipster
此后会输出一个欢迎页,并且开始向我们进行提问,如下图所示,前面带有 ? 的就是问题。回答问题的方法如下:
- 单选题中,按回车键进行选择;
- 多选题中,按空格键选择选项,按回车键确定选择。
-
[ 根据需求回答问题 ] 根据我们的需求,逐步回答jhipster提出的问题。我们当前创建的是单体项目,使用JWT进行权限校验,使用MySQL作为数据库,不使用缓存,前端使用Vue框架,则可以按照下图所示进行选择: 也可以根据自己的需求进行更改,有可能会出现新的问题分支,如果看不懂,百度即可。 -
[ 等待jhipster创建项目 ] 上述问题全部回答完毕,JHipster就会开始创建项目。待jhipster提示你可以使用./mvnw 启动项目,说明项目创建成功。 -
**[ 创建数据库 ] **项目创建完毕后,还需要为该项目创建数据库。使用如下指令以root身份登录MySQL: mysql -uroot -p # 随后会提示你输入密码,此时你的输入是不可见的;输入完毕后,回车即可
登录成功后,使用create database指令创建数据库,并退出MySQL客户端: create database test_monolithic;
quit;
2.2. 配置项目
项目创建完毕后,还需要配置项目的数据库信息,因为jhipster并不知道你的数据库账号密码,因此需要我们手动配置。
可以继续使用 Xshell 搭配vim指令修改项目的配置文件,也可以像本文一样使用 Xftp 以可视化的方式修改配置:
-
[ 连接服务器 ] 使用 Xftp 与服务器建立SFTP连接。 -
[ 打开配置文件 ] 进入到项目目录中的 /src/main/resources/config 中,打开配置文件。 经过检查,我创建的项目数据库配置在了application-dev.yml。 -
[ 修改配置文件 ] 在文件中搜索"dataSource"快速定位:
- 修改url,其中3306是MySQL服务的端口号,test_monolithic则是数据库名;若使用的是虚拟机,服务器ip地址不可填写localhost;
- 修改username为你的MySQL登录账号,password为你的MySQL登录密码。
2.3. 启动项目
在一切准备就绪后,我们回到 Xshell ,使用指令启动项目:
- [ 启动项目 ] 进入到项目根目录,使用
./mvnw 运行脚本文件,即可启动项目。
cd /jhipster-project/test-monolithic
./mvnw
- [ 访问项目 ] 在浏览器中通过ip地址访问你的项目,默认端口为8080。
3. Jhipster搭建微服务项目
使用JHipster进行微服务
将一个大项目拆分成多个小项目,每个项目实现其中的一小块功能。小项目之间相互协调配合,当这些服务的功能都正常运作,这些项目就构建起一个整体的微服务。
JHipster可以快速地创建这些小项目,并通过配置,使这些小项目相互协调配合,构成微服务。
核心目标:从github中下载注册中心(jhipster-registry),根据上文提到的JHipster创建流程,使用JHipster分别创建一个 微服务(micro)和一个 网关(gateway)。在一切准备就绪后,按顺序启动他们,构建微服务。
准备工作 - 为微服务创建数据库
-
[ 登录MySQL ] 使用如下指令登录到MySQL客户端。 mysql -uroot -p # 随后会提示你输入密码,此时你的输入是不可见的
-
[ 创建数据库 ] 为微服务创建一个名为test_microservice的数据库,随后退出。 create database test_microservice;
quit;
3.1. 从github下载注册中心(jhipster-registry)
注册中心Registry源码
- 它是一个Eureka服务,作为应用程序的发现服务器。该服务器维护并分发可用应用程序实例的动态列表,微服务随后使用这些列表来执行HTTP请求路由和负载平衡。
- 它是一个Spring Cloud配置服务,为所有应用程序运行时提供配置。
- 它还是一台管理服务器,具有用于监视和管理应用程序的仪表板。
-
**[ 创建目录 ] **使用 Xshell 与服务器建立SSH连接,随后输入下方指令创建并进入目录。 mkdir /jhipster-project/test-microservice
cd /jhipster-project/test-microservice
-
[ 下载源码 ] 使用git clone 指令将注册中心源码下载到目录中(端口号8761)。 git clone https://github.com/jhipster/jhipster-registry
3.2. 使用jhipster指令创建并配置微服务(micro)
-
**[ 创建目录 ] **使用 Xshell 与服务器建立SSH连接,随后输入下方指令创建并进入目录。 mkdir /jhipster-project/test-microservice/micro
cd /jhipster-project/test-microservice/micro
-
[ 创建项目 ] 使用jhipster 指令开启引导,并根据需求回答问题以创建项目(端口号8081)。 -
[ 配置微服务 ] 使用 Xftp 找到微服务的配置文件application-dev.yml,修改datasource下的数据库信息:
- 修改url,其中3306是MySQL服务的端口号,test_monolithic则是数据库名;若使用的是虚拟机,服务器ip地址不可填写localhost;
- 修改username为你的MySQL登录账号,password为你的MySQL登录密码。
3.3. 使用jhipster指令创建并配置网关(gateway)
-
**[ 创建目录 ] **使用 Xshell 与服务器建立SSH连接,随后输入下方指令创建并进入目录。 mkdir /jhipster-project/test-microservice/gateway
cd /jhipster-project/test-microservice/gateway
-
[ 创建项目 ] 使用jhipster 指令开启引导,并根据需求回答问题以创建项目(端口号8080)。 -
[ 配置网关 ] 使用 Xftp 找到网关的配置文件application-dev.yml,修改如下配置:
- 修改 liquibase 和 r2dbc 下的url,其中3306是MySQL服务的端口号,test_monolithic则是数据库名;若使用的是虚拟机,服务器ip地址不可填写localhost;
- 修改 r2dbc 下的username和password,其中username为你的MySQL登录账号,password为你的MySQL登录密码。
- 修改 r2dbc 下的url为
r2dbc:mysql://服务器ip地址:3306/test_microservice - 修改username为你的MySQL登录账号,password为你的MySQL登录密码。
3.4. 启动项目
3.4.1. 启动注册中心
-
[ 开启screen ] 输入下方指令为注册中心开启一个单独的screen。 screen -S jhipster-registry
-
[ 启动项目 ] 进入到项目根目录,输入./mvnw 启动项目。 cd /jhipster-project/test-microservice/jhipster-registry
./mvnw
-
[ 退出screen ] 按住Ctrl不放手,随后先按A,再按D,即可退出screen。 -
[ 访问项目 ] 以 服务器ip:8761 作为url,在浏览器访问注册中心,默认账号和密码都是admin。
3.4.2. 启动微服务
-
[ 开启screen ] 输入下方指令为注册中心开启一个单独的screen。 screen -S micro
-
[ 启动项目 ] 进入到项目根目录,输入./mvnw 启动项目。 cd /jhipster-project/test-microservice/micro
./mvnw
-
[ 退出screen ] 按住Ctrl不放手,随后先按A,再按D,即可退出screen。 -
[ 访问项目 ] 以 服务器ip:8081 作为url,在浏览器访问微服务。 -
[ 查看注册情况 ] 以 服务器ip:8761 作为url,再次访问注册中心,可以看到项目micro已成功上线。
3.4.3. 启动网关
-
[ 开启screen ] 输入下方指令为注册中心开启一个单独的screen。 screen -S gateway
-
[ 启动项目 ] 进入到项目根目录,输入./mvnw 启动项目。 cd /jhipster-project/test-microservice/gateway
./mvnw
启动成功没有什么特别的提示,没有报错即可。 -
[ 退出screen ] 按住Ctrl不放手,随后先按A,再按D,即可退出screen。 -
[ 访问项目 ] 以 服务器ip:8080 作为url,在浏览器访问注册中心,默认账号和密码都是admin。 -
[ 查看注册情况 ] 以 服务器ip:8761 作为url,再次访问注册中心,可以看到项目gateway已成功上线。
|