写点什么

Docker 下的 Spring Cloud 三部曲之三:在线横向扩容

作者:程序员欣宸
  • 2022 年 5 月 08 日
  • 本文字数:1299 字

    阅读完需:约 4 分钟

Docker下的Spring Cloud三部曲之三:在线横向扩容

欢迎访问我的 GitHub

这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos


本篇概览

  • 本章是《Docker 下的 Spring Cloud 三部曲》的最后一篇,前面两篇我们实践了开发和制作镜像文件,运行一个基于 spring cloud 的 RPC 服务环境,今天我们来试试 docker-compose 的扩容功能,将我们的 RPC 服务做在线扩容;

环境信息

  • 回顾一下实战环境,如下图:


扩容效果

  • 一般情况下,生产环境耗时耗资源的处理逻辑都集中在 provider 中,所以我们需要对 provider 做在线扩容,完成后的效果如下图所示:


扩容操做


docker-compose scale provider=3
复制代码


  • 控制台提示操做成功:


ubuntu@VM-129-56-ubuntu:~/work/springcloud$ sudo docker-compose scale provider=3   WARNING: The scale command is deprecated. Use the up command with the --scale flag instead.Starting springcloud_provider_1 ... doneCreating springcloud_provider_2 ... doneCreating springcloud_provider_3 ... done
复制代码


  • 执行以下命令可以看清容器和 IP 地址的信息:


docker inspect --format='{{.Config.Image}} {{.Name}} {{.State.Status}} {{.NetworkSettings.IPAddress}} ' `sudo docker ps -a -q`
复制代码


  • 信息如下所示:


ubuntu@VM-129-56-ubuntu:~/work/springcloud$ sudo docker inspect --format='{{.Config.Image}} {{.Name}} {{.State.Status}} {{.NetworkSettings.IPAddress}} ' `sudo docker ps -a -q`bolingcavalry/service-provider:0.0.1-SNAPSHOT /springcloud_provider_3 running 172.17.0.6 bolingcavalry/service-provider:0.0.1-SNAPSHOT /springcloud_provider_2 running 172.17.0.5 bolingcavalry/service-consumer:0.0.1-SNAPSHOT /springcloud_consumer_1 running 172.17.0.4 bolingcavalry/service-provider:0.0.1-SNAPSHOT /springcloud_provider_1 running 172.17.0.3 bolingcavalry/eureka-server:0.0.1-SNAPSHOT /springcloud_eureka_1 running 172.17.0.2 
复制代码


  • 新的 provider 容器已经启动了;

验证

  • consumer 的 http 接口,返回值中带有 provider 的 IP 地址,我们在浏览器输入 consumer 的服务地址:http://localhost:8083/user/aaa/bbb,多刷新几次,发现返回内容中的 provider IP 地址是一直再变化的,如下图:



  • 执行以下命令,会将新增的 springcloud_provider_2 和 springcloud_provider_3 销毁,恢复到最初的状态:


ubuntu@VM-129-56-ubuntu:~/work/springcloud$docker-compose scale provider=1WARNING: The scale command is deprecated. Use the up command with the --scale flag instead.Stopping and removing springcloud_provider_2 ... doneStopping and removing springcloud_provider_3 ... doneubuntu@VM-129-56-ubuntu:~/work/springcloud$
复制代码


  • 同样可以用浏览器刷新页面,通过返回的 provider IP 地址来验证 provider 还有几个;

  • 至此,Docker 下的 Spring Cloud 实战三部就全部完成了,希望能对您的 spring cloud 学习有所帮助;


欢迎关注 InfoQ:程序员欣宸

学习路上,你不孤单,欣宸原创一路相伴...

发布于: 2022 年 05 月 08 日阅读数: 2
用户头像

搜索"程序员欣宸",一起畅游Java宇宙 2018.04.19 加入

前腾讯、前阿里员工,从事Java后台工作,对Docker和Kubernetes充满热爱,所有文章均为作者原创,个人Github:https://github.com/zq2599/blog_demos

评论

发布
暂无评论
Docker下的Spring Cloud三部曲之三:在线横向扩容_Spring Cloud_程序员欣宸_InfoQ写作社区