【单体应用】; 【微服务】注册中心、微服务应用、微服务网关。

  • 单体应用:Monolithic
  • 微服务应用:MicroService
  • 微服务网关:Gateway

1、单体应用

1.1、创建单体应用

创建一个用于生产 Monolithic 应用 的目录,切换到该目录

示例

  • 不使用响应式,JWT 身份验证类型
  • MySQL 数据库、不使用缓存
  • Maven 构建,不使用 JHipster Registry 和其它技术
  • 前端:Vue 框架,生成 admin UI,默认 Bootswatch 主题、国际化(中英,注意空格选中)
  • 不需要其它测试框架,不需要其它生成器
目录结构

微服务 单体服务 微服务 单体应用_配置文件

1.2、数据库配置

  1. 为应用程序创建数据库
  • 可使用本地/远程数据库(相对于使用 JHipster 的服务器而言)
  • 可视化工具(如 Navicat)或命令行。
CREATE DATABASE mono_test;
  1. 修改配置文件:可视化工具(Xftp)或命令行方式
  • 找到项目配置文件:项目文件夹\src\main\resources\config\
  • 修改配置dataSource 的 URL、用户名、密码
  • 保存,确认配置成功修改(可在 Linux 中通过 cat 命令查看)

1.3、运行

初次启动 Maven 需要下载依赖,等待完成即可。

  1. 进入 JHipster 生成的应用程序目录
  2. 基于 Maven 构建的项目,输入 ./mvnw 启动。
cd /tmp/jhipster/myapplication
./mvnw
  1. 运行成功
  2. 访问项目
  • 服务器 IP 地址:云服务器公网 IP、虚拟机静态 IP
  • 默认端口号:8080

2、微服务(❗)

组件说明

  • 注册中心:运行时配置、监控、扩展应用程序
  • 微服务应用
  • 微服务网关:处理 Web 流量,为前端应用提供服务

2.1、注册中心

Registry Center

  • Eureka 服务:服务发现
  • Spring Cloud 配置服务:运行时提供配置
  • 管理服务器:监控、管理

2.1.1、安装方式

基于 Registry Center 创建微服务应用和网关,因此需要先安装注册中心。

有以下 4 种安装方式

  • Spring 配置文件
  • 解压 jar 包
  • GitHub 克隆
  • Docker 镜像

2.1.2、安装

GitHub 克隆方式为例,安装 Registry Center

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

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

    git clone https://github.com/jhipster/jhipster-registry
  3. 完成安装:默认端口号 8761

    微服务 单体服务 微服务 单体应用_微服务 单体服务_02

2.2、微服务应用

2.2.1、创建

创建一个用于生产 Microservice 应用 的目录(与 Registry Center 同个父目录下)

切换到该目录,启动 JHipster。

mkdir /tmp/jhipster/mymicro/myapplication
cd /tmp/jhipster/mymicro/myapplication
jhipster

具体选项参考本文 【1.3.3、2.1】。

  • 端口号(避免端口冲突)

  • 服务发现服务:JHipster Registry

    微服务 单体服务 微服务 单体应用_配置文件_03

2.2.2、数据库配置

与单体应用的配置相同,参考本文【2.2】

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

    • 可使用本地/远程数据库(相对于使用 JHipster 的服务器而言)

    • 可视化工具(如 Navicat)或命令行。

      CREATE DATABASE micro_test;
  2. 修改配置文件:可视化工具(Xftp)或命令行方式

    • 找到项目配置文件:项目文件夹\src\main\resources\config\

      微服务 单体服务 微服务 单体应用_配置文件_04

    • 修改配置: dataSource 的 URL、用户名、密码

      微服务 单体服务 微服务 单体应用_IP_05

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

2.3、微服务网关

2.3.1、创建网关应用

创建一个用于生产 Gateway application 的目录(与 Registry Center 同个父目录下)

切换到该目录,启动 JHipster。

mkdir /tmp/jhipster/mymicro/gateway
cd /tmp/jhipster/mymicro/gateway
jhipster

具体选项参考本文 【1.3.3、2.1】

  • 端口号(避免端口冲突)

  • 服务发现服务:JHipster Registry

    微服务 单体服务 微服务 单体应用_微服务 单体服务_06

2.3.2、数据库配置

Microservice application 使用同个数据库,配置有所不同。

修改配置文件:可视化工具(Xftp)或命令行方式

  • 找到项目配置文件:项目文件夹\src\main\resources\config\

    微服务 单体服务 微服务 单体应用_配置文件_04

  • 修改配置

    • liquibase 的 URL

    • r2dbc 的 URL、用户名、密码

      微服务 单体服务 微服务 单体应用_配置文件_08

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

2.4、运行

  • 步骤:启动注册中心(8761)→ 启动应用(8081) → 启动网关(8081)

  • 方式:通过 screen 分别开启 3 个会话,以便管理。

    # 列出所有会话
    screen -ls
    # 新建会话
    screen -S 会话名
    # 删除会话
    screen -S 会话名 -X quit
    # 退出会话(挂起):快捷键 Ctrl+A+D
    screen -d 会话名
    # 回到会话
    screen -r 会话名

2.4.1、启动注册中心

初次启动 Maven 需要下载依赖,等待完成即可。

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

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

    cd /tmp/jhipster/mymicro/jhipster-registry
    ./mvnw
  3. 启动成功,输出 URL 信息

    微服务 单体服务 微服务 单体应用_IP_09

  4. 访问 Registry:登录后可见已注册 1 个实例。

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

    • 默认端口号:8761

    • 默认账号密码:admin

      微服务 单体服务 微服务 单体应用_微服务 单体服务_10

  5. 挂起当前会话

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

2.4.2、启动微服务项目

初次启动 Maven 需要下载依赖,等待完成即可。

  1. 创建一个会话:用于启动微服务项目,创建后自动进入会话

    screen -S jh-micro
  2. 切换到微服务应用所在目录,执行 ./mvnw 启动项目。

    cd /tmp/jhipster/mymicro/myapplication
    ./mvnw
  3. 启动成功,输出 URL 信息

    微服务 单体服务 微服务 单体应用_微服务 单体服务_11

  4. 访问微服务项目

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

    • 端口号:8081

      微服务 单体服务 微服务 单体应用_IP_12

  5. 挂起当前会话

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

查看 Registry,可见已注册 2 个实例。

微服务 单体服务 微服务 单体应用_微服务_13

2.4.3、启动网关

初次启动 Maven 需要下载依赖,等待完成即可。

  1. 创建一个会话:用于启动网关,创建后自动进入会话。

    screen -S jh-gateway
  2. 切换到网关应用所在目录,执行 ./mvnw 启动项目。

    cd /tmp/jhipster/mymicro/gateway
    ./mvnw
  3. 启动成功,输出 URL 信息

    微服务 单体服务 微服务 单体应用_微服务 单体服务_14

  4. 访问网关

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

    • 端口号:8080

      微服务 单体服务 微服务 单体应用_IP_15

  5. 挂起当前会话

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

查看 Registry,可见已注册 3 个实例。

微服务 单体服务 微服务 单体应用_微服务 单体服务_16