JH2️⃣JDL②部署单体应用、微服务

1、单体应用

生成一个 monolith 应用,需求如下

1.1、创建 JDL 文件

  1. 开启 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
    	}
    }
    
  2. 下载 JDL 文件

  3. 默认文件名 jhipster-jdl,建议重命名为应用程序名称,以便标识。

1.2、生成应用

  1. 创建一个文件夹用于生成应用程序,切换到该文件夹。

  2. 使用 Xftp 上传 JDL 文件。

  3. 执行 jhipster 指令,等待应用程序生成。

    • jhipster jdl myMono.jdl
      

1.3、数据库配置

参考 JH2️⃣部署:单体应用、微服务

  1. 为应用程序创建数据库

    CREATE DATABASE 数据库名;
    
  2. 修改配置文件

    • 路径:项目文件夹\src\main\resources\config\application-dev.yml

    • 修改内容:datasource 的 URL、账号密码

    • 保存,确认配置成功修改(可在 Linux 中通过 cat 命令查看)

1.4、运行

2、实践:微服务(❗)

生成微服务集合,需求如下

2.1、注册中心

以 GitHub 克隆方式安装 Registry Center

  1. 创建应用程序目录,用于生产微服务应用。

    mkdir -p /tmp/jhipster/myMicro
    cd /tmp/jhipster/myMicro
    
  2. 将 GitHub 项目克隆到当前目录。

    git clone https://github.com/jhipster/jhipster-registry
    

2.2、微服务应用 & 网关

2.2.1、创建 JDL 文件

单个 JDL 文件可声明多个 application,

生成应用时会自动为不同 application 创建子文件夹。

  1. 在 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]
    	}
    }
    
  2. 下载 JDL 文件:默认文件名 jhipster-jdl,建议重命名为应用程序名称,以便标识。

2.2.2、生成应用

  1. 切换到应用程序文件夹。

    cd /tmp/jhipster/myMicro
    
  2. 使用 Xftp 上传 JDL 文件。

  3. 执行 jhipster 指令,等待应用程序生成。

    • jhipster jdl myMicro.jdl
      
    • 应用程序会在子文件夹中生成。

2.2.3、数据库配置

参考 JH2️⃣部署:单体应用、微服务

  1. 为应用程序创建数据库(微服务应用和网关共用)

    CREATE DATABASE 数据库名;
    
  2. 修改配置文件:微服务应用、网关都需修改。

    • 路径:项目文件夹\src\main\resources\config\application-dev.yml

    • 修改内容

      • 微服务应用:datasource 的 URL、账号密码

      • 网关应用:liquibase 的 URL,r2dbc 的 URL、用户名、密码

    • 保存,确认配置成功修改(可在 Linux 中通过 cat 命令查看)

2.3、运行

2.3.1、启动

启动 Registry Center

  1. 创建一个会话:用于启动注册中心,创建后自动进入会话。

    screen -S jh-registry
    
  2. 切换到 Registry center 所在目录,执行 ./mvnw 启动项目。

  3. 启动成功,输出 URL 信息

  4. 访问 Registry center

    • 服务器 IP 地址:云服务器公网 IP、虚拟机静态 IP

    • 默认端口号:8761

    • 默认账号密码:admin

  5. 挂起当前会话

    # 快捷键 Ctrl+A+D
    screen -d jh-registry
    

按照以上方式,分别启动 myMicro 和 myGateway

2.3.2、访问

服务启动后即可访问,如下所示