参考文章、视频

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

image-20220429181623499

输入下方指令进行安装

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连接工具进行演示:

  1. [ 连接服务器 ] 使用Xshell与服务器建立SSH连接。

    image-20220501163547144
  2. [ 创建文件夹 ] 首先创建项目文件夹(/jhipster-project/test-monolithic),并进入到文件夹中。

    mkdir /jhipster-project/test-monolithic
    cd /jhipster-project/test-monolithic
    
  3. [ 开启引导 ] 输入jhipster指令,开始引导。

    jhipster
    

    此后会输出一个欢迎页,并且开始向我们进行提问,如下图所示,前面带有 ? 的就是问题。回答问题的方法如下:

    • 单选题中,按回车键进行选择;
    • 多选题中,按空格键选择选项,按回车键确定选择。

    image-20220501154329594

  4. [ 根据需求回答问题 ] 根据我们的需求,逐步回答jhipster提出的问题。我们当前创建的是单体项目,使用JWT进行权限校验,使用MySQL作为数据库,不使用缓存,前端使用Vue框架,则可以按照下图所示进行选择:

    image-20220501162112157

    也可以根据自己的需求进行更改,有可能会出现新的问题分支,如果看不懂,百度即可。

  5. [ 等待jhipster创建项目 ] 上述问题全部回答完毕,JHipster就会开始创建项目。待jhipster提示你可以使用./mvnw启动项目,说明项目创建成功。

    image-20220501162746772

  6. **[ 创建数据库 ] **项目创建完毕后,还需要为该项目创建数据库。使用如下指令以root身份登录MySQL:

    mysql -uroot -p			# 随后会提示你输入密码,此时你的输入是不可见的;输入完毕后,回车即可
    

    登录成功后,使用create database指令创建数据库,并退出MySQL客户端:

    create database test_monolithic;
    quit;
    
    image-20220501165616901

2.2. 配置项目

项目创建完毕后,还需要配置项目的数据库信息,因为jhipster并不知道你的数据库账号密码,因此需要我们手动配置。

可以继续使用 Xshell 搭配vim指令修改项目的配置文件,也可以像本文一样使用 Xftp 以可视化的方式修改配置:

  1. [ 连接服务器 ] 使用 Xftp 与服务器建立SFTP连接。

    image-20220501163827094
  2. [ 打开配置文件 ] 进入到项目目录中的 /src/main/resources/config 中,打开配置文件。

    经过检查,我创建的项目数据库配置在了application-dev.yml

    image-20220501164340334
  3. [ 修改配置文件 ] 在文件中搜索"dataSource"快速定位:

    • 修改url,其中3306是MySQL服务的端口号,test_monolithic则是数据库名;若使用的是虚拟机,服务器ip地址不可填写localhost;
    • 修改username为你的MySQL登录账号,password为你的MySQL登录密码。

    image-20220505181438892

2.3. 启动项目

在一切准备就绪后,我们回到 Xshell ,使用指令启动项目:

  1. [ 启动项目 ] 进入到项目根目录,使用./mvnw运行脚本文件,即可启动项目。
cd /jhipster-project/test-monolithic
./mvnw

image-20220501170748464

  1. [ 访问项目 ] 在浏览器中通过ip地址访问你的项目,默认端口为8080。

image-20220502153549098

3. Jhipster搭建微服务项目

使用JHipster进行微服务

将一个大项目拆分成多个小项目,每个项目实现其中的一小块功能。小项目之间相互协调配合,当这些服务的功能都正常运作,这些项目就构建起一个整体的微服务。

JHipster可以快速地创建这些小项目,并通过配置,使这些小项目相互协调配合,构成微服务。

核心目标:从github中下载注册中心(jhipster-registry),根据上文提到的JHipster创建流程,使用JHipster分别创建一个 微服务(micro)和一个 网关(gateway)。在一切准备就绪后,按顺序启动他们,构建微服务。

image-20220502124455699

准备工作 - 为微服务创建数据库

  1. [ 登录MySQL ] 使用如下指令登录到MySQL客户端。

    mysql -uroot -p			# 随后会提示你输入密码,此时你的输入是不可见的
    
  2. [ 创建数据库 ] 为微服务创建一个名为test_microservice的数据库,随后退出。

    create database test_microservice;
    quit;
    

3.1. 从github下载注册中心(jhipster-registry)

注册中心Registry源码

  • 它是一个Eureka服务,作为应用程序的发现服务器。该服务器维护并分发可用应用程序实例的动态列表,微服务随后使用这些列表来执行HTTP请求路由和负载平衡。
  • 它是一个Spring Cloud配置服务,为所有应用程序运行时提供配置。
  • 它还是一台管理服务器,具有用于监视和管理应用程序的仪表板。
  1. **[ 创建目录 ] **使用 Xshell 与服务器建立SSH连接,随后输入下方指令创建并进入目录。

    mkdir /jhipster-project/test-microservice
    cd /jhipster-project/test-microservice
    
  2. [ 下载源码 ] 使用git clone指令将注册中心源码下载到目录中(端口号8761)。

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

3.2. 使用jhipster指令创建并配置微服务(micro)

  1. **[ 创建目录 ] **使用 Xshell 与服务器建立SSH连接,随后输入下方指令创建并进入目录。

    mkdir /jhipster-project/test-microservice/micro
    cd /jhipster-project/test-microservice/micro
    
  2. [ 创建项目 ] 使用jhipster指令开启引导,并根据需求回答问题以创建项目(端口号8081)。

    image-20220502134622925

    image-20220502130504922

  3. [ 配置微服务 ] 使用 Xftp 找到微服务的配置文件application-dev.yml,修改datasource下的数据库信息:

    • 修改url,其中3306是MySQL服务的端口号,test_monolithic则是数据库名;若使用的是虚拟机,服务器ip地址不可填写localhost;
    • 修改username为你的MySQL登录账号,password为你的MySQL登录密码。

    image-20220502134845075

    image-20220505182425927

3.3. 使用jhipster指令创建并配置网关(gateway)

  1. **[ 创建目录 ] **使用 Xshell 与服务器建立SSH连接,随后输入下方指令创建并进入目录。

    mkdir /jhipster-project/test-microservice/gateway
    cd /jhipster-project/test-microservice/gateway
    
  2. [ 创建项目 ] 使用jhipster指令开启引导,并根据需求回答问题以创建项目(端口号8080)。

    image-20220502135453516

  3. [ 配置网关 ] 使用 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登录密码。

    image-20220502140120006

    image-20220505182716685

3.4. 启动项目

3.4.1. 启动注册中心

  1. [ 开启screen ] 输入下方指令为注册中心开启一个单独的screen。

    screen -S jhipster-registry
    
  2. [ 启动项目 ] 进入到项目根目录,输入./mvnw启动项目。

    cd /jhipster-project/test-microservice/jhipster-registry
    ./mvnw
    

    image-20220502141244549

  3. [ 退出screen ] 按住Ctrl不放手,随后先按A,再按D,即可退出screen。

    image-20220502141413975

  4. [ 访问项目 ] 以 服务器ip:8761 作为url,在浏览器访问注册中心,默认账号和密码都是admin。

    image-20220502141611960

    image-20220502141721931

3.4.2. 启动微服务

  1. [ 开启screen ] 输入下方指令为注册中心开启一个单独的screen。

    screen -S micro
    
  2. [ 启动项目 ] 进入到项目根目录,输入./mvnw启动项目。

    cd /jhipster-project/test-microservice/micro
    ./mvnw
    

    image-20220502150545896

  3. [ 退出screen ] 按住Ctrl不放手,随后先按A,再按D,即可退出screen。

    image-20220502150609860

  4. [ 访问项目 ] 以 服务器ip:8081 作为url,在浏览器访问微服务。

    image-20220502150418766

  5. [ 查看注册情况 ] 以 服务器ip:8761 作为url,再次访问注册中心,可以看到项目micro已成功上线。

    image-20220502150929074

3.4.3. 启动网关

  1. [ 开启screen ] 输入下方指令为注册中心开启一个单独的screen。

    screen -S gateway
    
  2. [ 启动项目 ] 进入到项目根目录,输入./mvnw启动项目。

    cd /jhipster-project/test-microservice/gateway
    ./mvnw
    

    启动成功没有什么特别的提示,没有报错即可。

  3. [ 退出screen ] 按住Ctrl不放手,随后先按A,再按D,即可退出screen。

    image-20220502152742151

  4. [ 访问项目 ] 以 服务器ip:8080 作为url,在浏览器访问注册中心,默认账号和密码都是admin。

    image-20220502152619109

  5. [ 查看注册情况 ] 以 服务器ip:8761 作为url,再次访问注册中心,可以看到项目gateway已成功上线。

    image-20220502152952190

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐