在阿里云容器服务上开发基于Docker的Spring Cloud微服务应用(二)

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 本文为Spring Cloud与阿里云容器服务系列文章的第二篇,讨论了如何将示例代码一键部署到阿里云容器服务上。为了比较全面地展示高可用和负载均衡的能力,这里也会演示如何创建虚拟专有网和负载均衡。

部署Spring Cloud应用示例

本文为Spring Cloud与阿里云容器服务系列文章的第二篇,讨论了如何将示例代码一键部署到阿里云容器服务上。为了比较全面地展示高可用和负载均衡的能力,这里也会演示如何创建虚拟专有网和负载均衡。

一、在阿里云容器服务上开发Spring Cloud微服务应用

二、部署Spring Cloud应用示例(本文)

三、服务发现

四、服务间通信与集成

五、服务智能路由

六、集中配置管理

七、高可用和容错

八、监控和日志

九、服务的部署和发布策略

准备工作:创建VPC网络

本步准备工作是可选的,但基于安全性和网络效率的考虑,强烈建议用户使用VPC网络,原因是支持经典网络的Overlay的网络带宽损耗很大,而基于VPC的网络可以做到基本无损。

专有网络VPC控制台中选择华东1地域,点击创建专有网按钮。
vpc01

进入创建专有网页面,填写专有网名称字段,例如vpc-springcloud,点击确定按钮创建VPC。
vpc02

在创建成功页面点击管理交换机

vpc03

在管理交换机页面创建一个交换机,命名为vs1,配置网段。

vpc04

准备工作:创建负载均衡

本步准备工作是可选的,可以在创建集群后,创建应用之前完成,如果只是用于非生产环境的尝试,也可以用容器服务在创建集群是自动配置的SLB来做,这里就不演示了。

进入负载均衡控制台创建负载均衡,选择华东1区,其他设置保持不变,点击立即购买按钮,支付后静候短信通知。

slb_01

负载均衡创建成功后回到控制台,点击端口/健康检查一栏里的配置链接。
slb_02

在监听和服务器配置页面,创建一个监听:前端HTTP 8080端口,后台8080端口。

slb_03

点击下一步进入健康检查配置页面,将检查路径设置为/acs
slb_04

第一步:创建集群

进入容器服务控制台,创建集群,将集群命名为springcloud-demo,选择华东1区,专有网络:选择专有网和交换机,。

acs01

示例规格为2节点 2核4G或以上,设置口令,点击创建集群按钮。
acs02

注意:开通的集群规格一定要有2个节点,原因是2个gateway容器,每个容器都会映射
到同一个主机端口,如果只有1个节点会导致只有一个gateway能够启动成功。另外,每个
节点的配置最好在2核4G以上,否则会出现因为内存不足造成Java应用启动失败,或启动
时间过长。

第二步:部署应用

进入容器服务控制台-应用,选择集群springcloud-demo,点击创建应用按钮,进入创建应用页面。

应用名称定为springcloud-demo,点击使用编排模版创建按钮。
create_app01

拷贝docker-compose.yml内容,粘贴
进入模版编辑器。注意其中的${slbname}将来会替换为前面创建的负载均衡名字或ID。

create_app02

点击创建并部署按钮,在对话框中输入负载均衡ID,确认后创建应用。
create_app03

动态管理应用

容器服务控制台-应用中,点击springcloud-demo应用中的discovery1服务的页面中,我们可以看到服务的访问端点:

create_app04

点击访问端点,进入Eureka页面,在这个页面中可以看到所有注册到Eureka的服务的状态。其中foo服务的实例数目为1。

create_app05

我们尝试将foo服务的数目从1增加到2,点击变更配置链接:

create_app06

进入服务的配置更改页面,将容器数量从1改为2。

create_app07

服务更新完成后回到Eureka页面,可以看到其中foo服务的示例数已经由1变成2了。

create_app08

编译及在开发环境中运行应用

我们已经了解了如何把创建好的镜像部署到阿里云容器服务上。如果更改了代码,如何构建镜像呢,如何在本地开发环境中运行应用呢?

编译运行及构建镜像

为所有服务都构建镜像

./build-all.sh

运行前需要修改脚本中的REGPREFIX变量。

镜像全部上传到容器Hub

./push-all-images.sh

运行前需要修改脚本中的REGPREFIX变量,并Docker登录。

单独构建服务

cd {service directory}
./gradlew build

本地运行容器应用

在项目根目录下运行如下命令即可启动本地测试环境。

docker-compose up -d

小节

本文演示了如何在本地开发环境中编译并运行Spring Cloud应用,以及如何将Spring Cloud应用部署到阿里云容器服务上。随后文章会详细介绍Spring Cloud应用容器化的细节。

相关实践学习
巧用云服务器ECS制作节日贺卡
本场景带您体验如何在一台CentOS 7操作系统的ECS实例上,通过搭建web服务器,上传源码到web容器,制作节日贺卡网页。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
19天前
|
Cloud Native Serverless 流计算
云原生时代的应用架构演进:从微服务到 Serverless 的阿里云实践
云原生技术正重塑企业数字化转型路径。阿里云作为亚太领先云服务商,提供完整云原生产品矩阵:容器服务ACK优化启动速度与镜像分发效率;MSE微服务引擎保障高可用性;ASM服务网格降低资源消耗;函数计算FC突破冷启动瓶颈;SAE重新定义PaaS边界;PolarDB数据库实现存储计算分离;DataWorks简化数据湖构建;Flink实时计算助力风控系统。这些技术已在多行业落地,推动效率提升与商业模式创新,助力企业在数字化浪潮中占据先机。
103 12
|
20天前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 云原生 API 网关 2025 年 3 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要
|
1月前
|
存储 开发工具 开发者
揭秘 Microsoft.Docker.SDK:让容器开发更轻松的强大工具揭秘
随着云计算和容器技术的快速发展,`Docker` 已经成为容器化技术的事实标准。`Microsoft` 作为 `Docker` 的主要支持者和参与者,推出了 `Microsoft.Docker.SDK`,旨在帮助开发者更轻松地进行容器开发。本文将深入揭秘 Microsoft.Docker.SDK 的功能、使用方法以及它在容器开发中的应用。
76 12
|
1月前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 云原生 API 网关 2025 年 2 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要
530 11
阿里云微服务引擎 MSE 及 云原生 API 网关 2025 年 2 月产品动态
|
1月前
|
安全 持续交付 云计算
课时5:阿里云容器服务:最原生的集成Docker和云服务
阿里云容器服务以服务化形式构建容器基础设施,大幅提升开发效率,简化应用部署流程。通过Docker容器和DevOps工具(如Jenkins),实现自动化部署与迭代,优化企业内部复杂部署问题。该服务支持GPU调度、混合云架构无缝迁移,并与阿里云产品体系无缝集成,提供安全防护、网络负载均衡等多重功能支持。凭借微服务架构,帮助企业突破业务瓶颈,提高资源利用率,轻松应对海量流量。
课时5:阿里云容器服务:最原生的集成Docker和云服务
|
1月前
|
存储 监控 对象存储
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
|
2月前
|
存储 监控 对象存储
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
|
2月前
|
监控 Cloud Native Java
基于阿里云容器服务(ACK)的微服务架构设计与实践
本文介绍如何利用阿里云容器服务Kubernetes版(ACK)构建高可用、可扩展的微服务架构。通过电商平台案例,展示基于Java(Spring Boot)、Docker、Nacos等技术的开发、容器化、部署流程,涵盖服务注册、API网关、监控日志及性能优化实践,帮助企业实现云原生转型。
|
2月前
|
人工智能 SpringCloudAlibaba 自然语言处理
SpringCloud Alibaba AI整合DeepSeek落地AI项目实战
在现代软件开发领域,微服务架构因其灵活性、可扩展性和模块化特性而受到广泛欢迎。微服务架构通过将大型应用程序拆分为多个小型、独立的服务,每个服务运行在其独立的进程中,服务与服务间通过轻量级通信机制(通常是HTTP API)进行通信。这种架构模式有助于提升系统的可维护性、可扩展性和开发效率。
668 1
|
1月前
|
负载均衡 Dubbo Java
Spring Cloud Alibaba与Spring Cloud区别和联系?
Spring Cloud Alibaba与Spring Cloud区别和联系?

相关产品

  • 容器计算服务
  • 容器服务Kubernetes版
  • 下一篇
    oss创建bucket