本系列文章演示如何用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,现在整个应用栈的目录结构是这样的:

-- 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目录,输入命令后回车:

$ cd uaa/
$ mvn –Pdev clean package dockerfile:build
b, 构建microservice1镜像

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

$ cd microservice1/
$ mvn –Pdev clean package dockerfile:build
c, 构建gateway镜像

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

$ cd gateway/
$ mvn –Pdev clean package dockerfile:build

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

$ docker images

3 生成编排文件

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

$ 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文件

$ 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 # 加入端口映射配置
把Profile配置中的prod改成dev
gateway-app:
image: gateway
environment:
- SPRING_PROFILES_ACTIVE=dev,swagger # 如果这里是prod,改成dev

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

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

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

进入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命令

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

系列文章

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

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

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

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

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

JHipster生成微服务架构的应用栈(五)- 容器编排示例的更多相关文章

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

    本系列文章演示如何用JHipster生成一个微服务架构风格的应用栈. 环境需求:安装好JHipster开发环境的CentOS 7.4(参考这里) 应用栈名称:appstack 认证微服务: uaa 业 ...

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

    本系列文章演示如何用JHipster生成一个微服务架构风格的应用栈. 环境需求:安装好JHipster开发环境的CentOS 7.4(参考这里) 应用栈名称:appstack 认证微服务: uaa 业 ...

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

    本系列文章演示如何用JHipster生成一个微服务架构风格的应用栈. 环境需求:安装好JHipster开发环境的CentOS 7.4(参考这里) 应用栈名称:appstack 认证微服务: uaa 业 ...

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

    本系列文章演示如何用JHipster生成一个微服务架构风格的应用栈. 环境需求:安装好JHipster开发环境的CentOS 7.4(参考这里) 应用栈名称:appstack 认证微服务: uaa 业 ...

  5. 庐山真面目之十微服务架构 Net Core 基于 Docker 容器部署 Nginx 集群

    庐山真面目之十微服务架构 Net Core 基于 Docker 容器部署 Nginx 集群 一.简介      前面的两篇文章,我们已经介绍了Net Core项目基于Docker容器部署在Linux服 ...

  6. .Net 微服务架构技术栈的那些事

    一.前言 大家一直都在谈论微服务架构,园子里面也有很多关于微服务的文章,前几天也有一些园子的朋友问我微服务架构的一些技术,我这里就整理了微服务架构的技术栈路线图,这里就分享出来和大家一起探讨学习,同时 ...

  7. 使用jhipster搭建微服务--简单demo

    简介 jhipster简单来说是一个基于nodejs+yeoman的java代码生成器.往大了说是基于java的一套微服务解决方案.请注意是一整套的微服务解决方案.jhipster在整个程序架构上都做 ...

  8. .NET Core微服务架构学习与实践系列文章索引目录

    一.为啥要总结和收集这个系列? 今年从原来的Team里面被抽出来加入了新的Team,开始做Java微服务的开发工作,接触了Spring Boot, Spring Cloud等技术栈,对微服务这种架构有 ...

  9. 开篇有益-解析微软微服务架构eShopOnContainers(一)

    为了推广.Net Core,微软为我们提供了一个开源Demo-eShopOnContainers,这是一个使用Net Core框架开发的,跨平台(几乎涵盖了所有平台,windows.mac.linux ...

随机推荐

  1. Ocelot简易教程(二)之快速开始1

    Ocelot简易教程目录 Ocelot简易教程(一)之Ocelot是什么 Ocelot简易教程(二)之快速开始1 Ocelot简易教程(二)之快速开始2 Ocelot简易教程(三)之主要特性及路由详解 ...

  2. 微信JSAPI支付回调

    在微信支付中,当用户支付成功后,微信会把相关支付结果和用户信息发送给商户,商户需要接收处理,并返回应答. 在经历了千幸万苦之,填完了所有的JSAPI支付的坑后(微信JSAPI支付 跟 所遇到的那些坑) ...

  3. mysql 开发基础系列8 表的存储引擎

    一. 表的存储引擎 1. 概述 插件式存储引擎是mysql数据库最重要的特性之一, 用户可以根据应用的需要选择如何存储和索引数据,是否使用事务等.在mysql 5.0里支持的引擎包括: MyISAM, ...

  4. 搞懂ES6的import export

    引言 说来惭愧,这两个关键字几乎天天在写,但是自己写的模块export出去的对象,import居然拿不到,也是没谁了

  5. C#版 - LeetCode 148. Sort List 解题报告(归并排序小结)

    leetcode 148. Sort List 提交网址: https://leetcode.com/problems/sort-list/  Total Accepted: 68702 Total ...

  6. [Jenkins][Git]ssh原理以及与https的区别

    -------------------------------------------------------------------- 本文参考多篇文章结合自身情况完成,可自由转载,需保留本文出处! ...

  7. Magicodes.NET框架之路——让代码再飞一会(ASP.NET Scaffolding)

    首先感谢大家对Magicodes.NET框架的支持.就如我上篇所说,框架成熟可能至少还需要一年,毕竟个人力量实在有限.希望有兴趣的小伙伴能够加入我们并且给予贡献.同时有问题的小伙伴请不要在群里询问问题 ...

  8. php使用cURL上传图片

    上传文件和POST非常相似,都是通过表单采取POST方法提交的. 先新建一个接收文件的页面upload.php: var_dump($_POST); var_dump($_FILES); 再建立一个发 ...

  9. 浅谈缓存技术在ASP.NET中的运用

    本篇文章虽不谈架构,但是Cache又是架构中不可或缺的部分,因此,在讲解Cache的同时,将会提及到部分架构知识,关于架构部分,读者可以不用理解,或者直接跳过, 你只需关心Cache即可,具体的架构, ...

  10. Visual Studio 2017 - Windows应用程序打包成exe文件(1)- 工具简单总结

    最近有对一个Windows应用程序少许维护和修改.修改之后要发布新的exe安装文件,打包exe文件时,遇到了很头疼的问题,还好最后解决了,记录一下. Visual Studio版本:Visual St ...