本文为Spring Cloud与阿里云容器服务系列文章的第二篇,讨论了如何将示例代码一键部署到阿里云容器服务上。为了比较全面地展示高可用和负载均衡的能力,这里也会演示如何创建虚拟专有网和负载均衡。
一、在阿里云容器服务上开发Spring Cloud微服务应用
二、部署Spring Cloud应用示例(本文)
三、服务发现
四、服务间通信与集成
五、服务智能路由
六、集中配置管理
七、高可用和容错
八、监控和日志
九、服务的部署和发布策略
本步准备工作是可选的,但基于安全性和网络效率的考虑,强烈建议用户使用VPC网络,原因是支持经典网络的Overlay的网络带宽损耗很大,而基于VPC的网络可以做到基本无损。
在专有网络VPC
控制台中选择华东1
地域,点击创建专有网
按钮。
进入创建专有网页面,填写专有网名称
字段,例如vpc-springcloud
,点击确定
按钮创建VPC。
在创建成功页面点击管理交换机
在管理交换机页面创建一个交换机,命名为vs1
,配置网段。
本步准备工作是可选的,可以在创建集群后,创建应用之前完成,如果只是用于非生产环境的尝试,也可以用容器服务在创建集群是自动配置的SLB来做,这里就不演示了。
进入负载均衡控制台创建负载均衡,选择华东1
区,其他设置保持不变,点击立即购买
按钮,支付后静候短信通知。
负载均衡创建成功后回到控制台,点击端口/健康检查
一栏里的配置
链接。
在监听和服务器配置页面,创建一个监听:前端HTTP 8080端口,后台8080端口。
进入容器服务控制台,创建集群,将集群命名为springcloud-demo
,选择华东1
区,专有网络
:选择专有网和交换机,。
示例规格为2节点 2核4G或以上,设置口令,点击创建集群
按钮。
注意:开通的集群规格一定要有2个节点,原因是2个gateway容器,每个容器都会映射
到同一个主机端口,如果只有1个节点会导致只有一个gateway能够启动成功。另外,每个
节点的配置最好在2核4G以上,否则会出现因为内存不足造成Java应用启动失败,或启动
时间过长。
进入容器服务控制台-应用,选择集群springcloud-demo
,点击创建应用
按钮,进入创建应用页面。
应用名称定为springcloud-demo
,点击使用编排模版创建
按钮。
拷贝docker-compose.yml内容,粘贴
进入模版编辑器。注意其中的${slbname}
将来会替换为前面创建的负载均衡名字或ID。
点击创建并部署
按钮,在对话框中输入负载均衡ID,确认后创建应用。
在容器服务控制台-应用中,点击springcloud-demo
应用中的discovery1
服务的页面中,我们可以看到服务的访问端点:
点击访问端点,进入Eureka页面,在这个页面中可以看到所有注册到Eureka的服务的状态。其中foo
服务的实例数目为1。
我们尝试将foo
服务的数目从1增加到2,点击变更配置
链接:
进入服务的配置更改页面,将容器数量
从1改为2。
服务更新完成后回到Eureka页面,可以看到其中foo服务的示例数已经由1变成2了。
我们已经了解了如何把创建好的镜像部署到阿里云容器服务上。如果更改了代码,如何构建镜像呢,如何在本地开发环境中运行应用呢?
./build-all.sh
运行前需要修改脚本中的REGPREFIX
变量。
./push-all-images.sh
运行前需要修改脚本中的REGPREFIX
变量,并Docker登录。
cd {service directory}
./gradlew build
在项目根目录下运行如下命令即可启动本地测试环境。
docker-compose up -d
本文演示了如何在本地开发环境中编译并运行Spring Cloud应用,以及如何将Spring Cloud应用部署到阿里云容器服务上。随后文章会详细介绍Spring Cloud应用容器化的细节。