JHipster生成微服务架构的应用栈(五)- 容器编排示例
本系列文章演示如何用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 构建所有微服务的镜像
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生成微服务架构的应用栈(五)- 容器编排示例
你现在的气质里,藏着你走过的路,读过的书,爱过的人。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
JHipster生成微服务架构的应用栈(四)- 网关微服务示例
本系列文章演示如何用JHipster生成一个微服务架构风格的应用栈。 环境需求:安装好JHipster开发环境的CentOS 7.4(参考这里) 应用栈名称:appstack 认证微服务: uaa 业务微服务:microservice1 网关微服务:gateway 实体名:role 主机IP:192.168.220.120 1 生成网关微服务的工程代码 进入appstack/gateway目录,输入命令后回车: $ cd gateway/ $ jhipster 命令行输出JHipster启动信息 现在开始问答环节 1.1 Which type of application would you like to create? 选择生成的应用类型 这是一个单选题,有4个选项,使用上下键切换选项。 这里选择Microservice gateway,也就是网关微服务。 单击回车继续。 1.2 What is the base name of your application? 输入应用的名称 默认名称是当前目录名gateway,也可以自己输入名称;这里使用默认名称。注意:名称只能是大小写字母,...
- 下一篇
【Android架构】基于MVP模式的Retrofit2+RXjava封装之文件下载(二)
上篇中我们介绍了基于MVP的Retrofit2+RXjava封装,还没有看的点击这里,这一篇我们来说说文件下载的实现。 首先,我们先在ApiServer定义好调用的接口 @GET Observable<ResponseBody> downloadFile(@Url String fileUrl); 接着定义一个接口,下载成功后用来回调 public interface FileView extends BaseView { void onSuccess(File file); } 接着是Observer,建议与处理普通接口的Observer区分处理 public abstract class FileObsever extends BaseObserver<ResponseBody> { private String path; public FileObsever(BaseView view, String path) { super(view); this.path = path; } @Override protected void onStart() {...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- MySQL8.0.19开启GTID主从同步CentOS8
- Mario游戏-低调大师作品
- CentOS关闭SELinux安全模块
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Red5直播服务器,属于Java语言的直播服务器
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池