本系列文章演示如何用JHipster生成一个微服务架构风格的应用栈。 环境需求:安装好JHipster开发环境的CentOS 7.4(参考这里) 应用栈名称:appstack 认证微服务: uaa 业务微服务:microservice1 网关微服务:gateway 实体名:role 主机IP:192.168.220.120
请参考这个系列的前4篇文章。
推荐版本:1.21.2
完整安装说明,请参考这里
在命令行,进入appstack目录,创建一个子目录docker-compose
,现在整个应用栈的目录结构是这样的:
-- appstack
|-- uaa
|-- microservice1
|-- gateway
|-- docker-compose
预先下载openjdk:8-jre-alpine容器镜像,能提高后续工作的效率。
注意:编写本文时使用的JHipster版本为5.1.0
,镜像构建命令为:'dockerfile:build';JHipster '5.4.0'及之后的版本使用新的镜像构建命令:'jib:dockerBuild'。
进入uaa目录,输入命令后回车:
$ cd uaa/
$ mvn –Pdev clean package dockerfile:build
进入microservice1目录,输入命令后回车:
$ cd microservice1/
$ mvn –Pdev clean package dockerfile:build
进入gateway目录,输入命令后回车:
$ cd gateway/
$ mvn –Pdev clean package dockerfile:build
构建成功后,可以通过docker命令查看镜像列表:
$ docker images
进入docker-compose目录,输入命令后回车:
$ cd docker-compose/
$ jhipster docker-compose
选择想要部署的应用类型
这是一个单选题,有2个选项,使用上下键切换选项。
因为要部署的是一个微服务架构应用栈,这里选择Microservice application
。
单击回车继续。
选择网关的类型
这是一个单选题,有2个选项,使用上下键切换选项。
这里选择JHipster gateway based on Netflix Zuul
。
单击回车继续。
输入需要部署的网关和业务微服务的位置
这是一个相对于docker-compose的相对路径,默认路径是../
,这也是之前生成的网关和业务微服务以及认证微服务的位置。
单击回车继续。
选择需要加入编排配置文件的微服务
这是一个多选题,使用上下键切换选项,使用空格键选中选项,使用a键全选,使用i键取消全选。
这里选择全部的微服务。
单击回车继续。
选择是否需要启动监控组件
这是一个单选题,有3个选项,使用上下键切换选项。
简单起见,选择No
。
单击回车继续。
输入JHipster Registry的admin账号的密码
默认值是admin
,这也是之前启动的JHipster Registry的密码。
单击回车继续。
这个过程通常需要1-2分钟。
完成后,在目录下看到所有生成的文件。
打开docker-compose.yml文件
$ vi docker-compose
gateway-mysql:
image: mysql:5
environment:
- MYSQL_ROOT_PASSWORD=my-secret-pw # 加入数据库密码配置
ports:
- 32800:3306 # 加入端口映射配置
......
......
microservice1-mysql:
image: mysql:5
environment:
- MYSQL_ROOT_PASSWORD=my-secret-pw # 加入数据库密码配置
ports:
- 32700:3306 # 加入端口映射配置
......
......
uaa-mysql:
image: mysql:5
environment:
- MYSQL_ROOT_PASSWORD=my-secret-pw # 加入数据库密码配置
ports:
- 32900:3306 # 加入端口映射配置
gateway-app:
image: gateway
environment:
- SPRING_PROFILES_ACTIVE=dev,swagger # 如果这里是prod,改成dev
特别是mysql和jhipster-registry这2个镜像的Tag,这样避免启动容器的时候,临时去下载镜像。
进入docker-compose目录,输入命令后回车:
$ docker-compose up -d
所有容器和容器内的微服务启动,需要大概3-5分钟。
启动完成后,就可以访问JHipster Registry和gateway的Web UI,默认用户名和密码都是admin
:
http://192.168.220.120:8761
http://192.168.220.120:8080
$ docker-compose scale microservice1=5 # 将microservice1的容器实例扩展到5个
$ docker-compose stop # 停止所有编排中的容器
$ docker-compose down # 停止并且删除所有编排中的容器
JHipster生成微服务架构的应用栈(二)- 认证微服务示例
JHipster生成微服务架构的应用栈(三)- 业务微服务示例
JHipster生成微服务架构的应用栈(四)- 网关微服务示例
JHipster生成微服务架构的应用栈(五)- 容器编排示例
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。