JH2️⃣JDL②部署单体应用、微服务
1、单体应用
生成一个
monolith
应用,需求如下
- 应用名称:myMono
- Java 包名:indi.jaywee.mono
- 身份验证类型:JWT
- 数据库:MySQL,不使用缓存
- 项目构建工具:Maven
- 前端框架:Vue
1.1、创建 JDL 文件
-
开启 JDL-studio,输入配置内容。
application { config { applicationType monolith baseName myMono packageName indi.jaywee.mono authenticationType jwt databaseType sql prodDatabaseType mysql devDatabaseType mysql cacheProvider no buildTool maven clientFramework vue } }
-
下载 JDL 文件
-
默认文件名
jhipster-jdl
,建议重命名为应用程序名称,以便标识。
1.2、生成应用
-
创建一个文件夹用于生成应用程序,切换到该文件夹。
-
使用
Xftp
上传 JDL 文件。 -
执行
jhipster
指令,等待应用程序生成。-
jhipster jdl myMono.jdl
-
1.3、数据库配置
-
为应用程序创建数据库
CREATE DATABASE 数据库名;
-
修改配置文件
-
路径:
项目文件夹\src\main\resources\config\application-dev.yml
-
修改内容:datasource 的 URL、账号密码
-
保存,确认配置成功修改(可在 Linux 中通过
cat
命令查看)
-
1.4、运行
-
创建一个 Screen,切换到应用程序所在文件夹,运行应用。
screen -S jh-mono cd /tmp/jhipster/myMono ./mvnw
-
运行成功:注意此处的 localhost 表示的是服务器的主机号。
-
访问应用程序:可正常访问。
2、实践:微服务(❗)
生成微服务集合,需求如下
Registry Center
:从 Github 下载。microservice
- 应用名称:myMicro
- 服务端口号:8081
- Java 包名:indi.jaywee.micro
- 身份验证类型:JWT
- 数据库:MySQL,不使用缓存
- 项目构建工具:Maven
- 国际化:英文、中文
gateway
- 应用名称:myGateway
- 服务端口号:8080
- Java 包名:indi.jaywee.gateway
- 身份验证类型:JWT
- 数据库:MySQL,不使用缓存
- 项目构建工具:Maven
- 前端框架:Vue
- 国际化:英文、中文
2.1、注册中心
以 GitHub 克隆方式安装
Registry Center
-
创建应用程序目录,用于生产微服务应用。
mkdir -p /tmp/jhipster/myMicro cd /tmp/jhipster/myMicro
-
将 GitHub 项目克隆到当前目录。
git clone https://github.com/jhipster/jhipster-registry
2.2、微服务应用 & 网关
2.2.1、创建 JDL 文件
单个 JDL 文件可声明多个 application,
生成应用时会自动为不同 application 创建子文件夹。
-
在 JDL-studio 输入配置内容
application { config { applicationType microservice baseName myMicro serverPort 8081 packageName indi.jaywee.micro authenticationType jwt databaseType sql prodDatabaseType mysql devDatabaseType mysql cacheProvider no buildTool maven nativeLanguage en languages [zh-cn] } } application { config { applicationType gateway baseName myGateway serverPort 8080 packageName indi.jaywee.gateway authenticationType jwt databaseType sql prodDatabaseType mysql devDatabaseType mysql cacheProvider no buildTool maven clientFramework vue nativeLanguage en languages [zh-cn] } }
-
下载 JDL 文件:默认文件名
jhipster-jdl
,建议重命名为应用程序名称,以便标识。
2.2.2、生成应用
-
切换到应用程序文件夹。
cd /tmp/jhipster/myMicro
-
使用
Xftp
上传 JDL 文件。 -
执行
jhipster
指令,等待应用程序生成。-
jhipster jdl myMicro.jdl
-
应用程序会在子文件夹中生成。
-
2.2.3、数据库配置
-
为应用程序创建数据库(微服务应用和网关共用)
CREATE DATABASE 数据库名;
-
修改配置文件:微服务应用、网关都需修改。
-
路径:
项目文件夹\src\main\resources\config\application-dev.yml
-
修改内容
-
微服务应用:datasource 的 URL、账号密码
-
网关应用:
liquibase
的 URL,r2dbc
的 URL、用户名、密码
-
-
保存,确认配置成功修改(可在 Linux 中通过
cat
命令查看)
-
2.3、运行
-
步骤:启动注册中心(8761)→ 启动应用(8081) → 启动网关(8081)
-
方式:通过
screen
分别开启 3 个会话,以便管理。# 列出所有会话 screen -ls # 新建会话 screen -S 会话名 # 删除会话 screen -S 会话名 -X quit # 退出会话(挂起):快捷键 Ctrl+A+D screen -d 会话名 # 回到会话 screen -r 会话名
2.3.1、启动
启动 Registry Center
-
创建一个会话:用于启动注册中心,创建后自动进入会话。
screen -S jh-registry
-
切换到
Registry center
所在目录,执行./mvnw
启动项目。 -
启动成功,输出 URL 信息
-
访问 Registry center
-
服务器 IP 地址:云服务器公网 IP、虚拟机静态 IP
-
默认端口号:8761
-
默认账号密码:admin
-
-
挂起当前会话
# 快捷键 Ctrl+A+D screen -d jh-registry
按照以上方式,分别启动 myMicro 和 myGateway
2.3.2、访问
服务启动后即可访问,如下所示
-
Registry Center
:已注册 3 个示例 -
myMicro
:成功访问 -
myGateway
:成功访问