前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JHipster生成微服务架构的应用栈(五)- 容器编排示例

JHipster生成微服务架构的应用栈(五)- 容器编排示例

原创
作者头像
羽客
修改2018-11-07 13:55:29
1.7K0
修改2018-11-07 13:55:29
举报
文章被收录于专栏:云原生架构实践

本系列文章演示如何用JHipster生成一个微服务架构风格的应用栈。 环境需求:安装好JHipster开发环境的CentOS 7.4(参考这里) 应用栈名称:appstack 认证微服务: uaa 业务微服务:microservice1 网关微服务:gateway 实体名:role 主机IP:192.168.220.120

1 前提条件

1.1 已经生成微服务架构的应用栈

请参考这个系列的前4篇文章。

1.2 安装Docker Compose

推荐版本:1.21.2

完整安装说明,请参考这里

1.3 创建一个编排目录

在命令行,进入appstack目录,创建一个子目录docker-compose,现在整个应用栈的目录结构是这样的:

代码语言:txt
复制
-- appstack
  |-- uaa
  |-- microservice1
  |-- gateway
  |-- docker-compose

1.4 公共镜像

预先下载openjdk:8-jre-alpine容器镜像,能提高后续工作的效率。

2 构建微服务的镜像

2.1 构建所有微服务的镜像

注意:编写本文时使用的JHipster版本为5.1.0,镜像构建命令为:'dockerfile:build';JHipster '5.4.0'及之后的版本使用新的镜像构建命令:'jib:dockerBuild'。

a, 构建uaa镜像

进入uaa目录,输入命令后回车:

代码语言:txt
复制
$ cd uaa/
$ mvn –Pdev clean package dockerfile:build
b, 构建microservice1镜像

进入microservice1目录,输入命令后回车:

代码语言:txt
复制
$ cd microservice1/
$ mvn –Pdev clean package dockerfile:build
c, 构建gateway镜像

进入gateway目录,输入命令后回车:

代码语言:txt
复制
$ cd gateway/
$ mvn –Pdev clean package dockerfile:build

构建成功后,可以通过docker命令查看镜像列表:

代码语言:txt
复制
$ docker images

3 生成编排文件

进入docker-compose目录,输入命令后回车:

代码语言:txt
复制
$ cd docker-compose/
$ jhipster docker-compose

命令行输出jhipster:docker-compose命令启动信息

现在开始问答环节

3.1 Which type of application would you like to deploy?

选择想要部署的应用类型

这是一个单选题,有2个选项,使用上下键切换选项。

因为要部署的是一个微服务架构应用栈,这里选择Microservice application

单击回车继续。

3.2 Which type of gateway would you like to use?

选择网关的类型

这是一个单选题,有2个选项,使用上下键切换选项。

这里选择JHipster gateway based on Netflix Zuul

单击回车继续。

3.3 Enter the root directory where your gateway(s) and microservices are located

输入需要部署的网关和业务微服务的位置

这是一个相对于docker-compose的相对路径,默认路径是../,这也是之前生成的网关和业务微服务以及认证微服务的位置。

单击回车继续。

3.4 Which applications do you want to include in your configuration?

选择需要加入编排配置文件的微服务

这是一个多选题,使用上下键切换选项,使用空格键选中选项,使用a键全选,使用i键取消全选。

这里选择全部的微服务。

单击回车继续。

3.5 Do you want to setup monitoring for your applications ?

选择是否需要启动监控组件

这是一个单选题,有3个选项,使用上下键切换选项。

简单起见,选择No

单击回车继续。

3.6 Enter the admin password used to secure the JHipster Registry

输入JHipster Registry的admin账号的密码

默认值是admin,这也是之前启动的JHipster Registry的密码。

单击回车继续。

问答结束,开始生成工程代码

这个过程通常需要1-2分钟。

完成后,在目录下看到所有生成的文件。

修改配置文件

打开docker-compose.yml文件

代码语言:txt
复制
$ vi docker-compose
加入数据库密码和端口映射的配置
代码语言:txt
复制
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                          # 加入端口映射配置
把Profile配置中的prod改成dev
代码语言:txt
复制
gateway-app:
    image: gateway
    environment:
        - SPRING_PROFILES_ACTIVE=dev,swagger    # 如果这里是prod,改成dev

检查所有镜像的Tag是否和本地的镜像一致

特别是mysql和jhipster-registry这2个镜像的Tag,这样避免启动容器的时候,临时去下载镜像。

4 通过容器编排启动微服务应用栈

进入docker-compose目录,输入命令后回车:

代码语言:txt
复制
$ docker-compose up -d

命令行输出所有微服务容器启动信息

所有容器和容器内的微服务启动,需要大概3-5分钟。

启动完成后,就可以访问JHipster Registry和gateway的Web UI,默认用户名和密码都是admin

代码语言:txt
复制
http://192.168.220.120:8761
http://192.168.220.120:8080

其它docker-compose命令

代码语言:txt
复制
$ docker-compose scale microservice1=5     # 将microservice1的容器实例扩展到5个
$ docker-compose stop 			           # 停止所有编排中的容器
$ docker-compose down			           # 停止并且删除所有编排中的容器

系列文章

JHipster生成微服务架构的应用栈(一)- 准备工作

JHipster生成微服务架构的应用栈(二)- 认证微服务示例

JHipster生成微服务架构的应用栈(三)- 业务微服务示例

JHipster生成微服务架构的应用栈(四)- 网关微服务示例

JHipster生成微服务架构的应用栈(五)- 容器编排示例

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 前提条件
    • 1.1 已经生成微服务架构的应用栈
      • 1.2 安装Docker Compose
        • 1.3 创建一个编排目录
          • 1.4 公共镜像
          • 2 构建微服务的镜像
            • 2.1 构建所有微服务的镜像
            • 3 生成编排文件
              • 命令行输出jhipster:docker-compose命令启动信息
                • 现在开始问答环节
                  • 问答结束,开始生成工程代码
                    • 修改配置文件
                      • 检查所有镜像的Tag是否和本地的镜像一致
                      • 4 通过容器编排启动微服务应用栈
                        • 命令行输出所有微服务容器启动信息
                          • 其它docker-compose命令
                          • 系列文章
                          相关产品与服务
                          容器镜像服务
                          容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
                          领券
                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档