在阿里云容器服务上开发基于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应用容器化的细节。

相关实践学习
Docker镜像管理快速入门
本教程将介绍如何使用Docker构建镜像,并通过阿里云镜像服务分发到ECS服务器,运行该镜像。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
12小时前
|
Kubernetes 持续交付 Docker
构建高效微服务架构:Docker与Kubernetes的完美结合
【5月更文挑战第28天】在现代软件开发中,微服务架构已成为提高系统可维护性和扩展性的关键。本文深入探讨了如何利用Docker容器化技术和Kubernetes集群管理工具共同打造一个高效、可靠的微服务环境。通过分析两者的核心优势及互补特性,我们展示了一种优化的部署策略,旨在帮助开发者和系统管理员理解和实践在复杂分布式系统中实现服务的有效管理和自动化部署。
|
1天前
|
存储 网络协议 文件存储
如何使用Docker本地部署Traefik并实现公网访问内网服务
如何使用Docker本地部署Traefik并实现公网访问内网服务
|
1天前
|
监控 Cloud Native 持续交付
构建未来:云原生架构在现代企业中的应用与挑战构建高效微服务架构:策略与实践
【5月更文挑战第27天】 随着数字化转型的深入,企业对技术的依赖日益增强。云原生技术以其灵活性、可扩展性和敏捷性成为推动企业IT架构现代化的关键力量。本文将探讨云原生架构的核心概念、实施策略以及在采纳过程中可能遇到的挑战。通过分析案例和最佳实践,旨在为读者提供如何在保持业务连续性的同时,利用云原生技术加速创新的见解。 【5月更文挑战第27天】 在当前软件开发的快速迭代和市场需求多变的背景下,微服务架构以其灵活性、可扩展性和容错性成为企业技术选型的热门。本文将探讨如何构建一个高效的微服务系统,包括关键的设计原则、常用的技术栈选择、以及实施过程中的最佳实践。我们将重点分析如何通过合理的服务划分、
|
1天前
|
Cloud Native 安全 Serverless
【阿里云云原生专栏】低代码开发在云原生平台的应用:阿里云低代码服务探索
【5月更文挑战第27天】在云原生时代,低代码开发凭借其图形化界面和预构建模块,简化了应用开发,提升了效率。阿里云积极探索低代码领域,推出函数计算FC和应用配置中心ACM等服务。FC让开发者无需关注基础设施,仅需少量代码即可实现应用部署,而ACM则提供动态配置管理,增强应用灵活性。阿里云的这些服务为企业数字化转型提供了高效、安全的解决方案,预示着低代码开发在云原生平台上的重要地位。
15 1
|
1天前
|
Docker 容器
【开发问题记录】启动某个服务时请求失败(docker-componse创建容器时IP参数不正确)
【开发问题记录】启动某个服务时请求失败(docker-componse创建容器时IP参数不正确)
8 1
|
1天前
|
Cloud Native Java 开发者
Spring Boot 3.0-未来企业应用开发的基石
Spring Boot 3.0还支持其他云原生技术,如服务网格、配置中心等。这些技术的集成进一步提升了应用程序的可观测性、可配置性和可维护性,使得企业能够更好地管理和监控应用程序的运行状态。
11 0
|
2天前
|
运维 监控 Cloud Native
构建高效云原生应用:容器化与微服务架构的融合
【5月更文挑战第26天】 在数字化转型的浪潮中,企业正迅速将重心转向云原生技术以支撑其业务灵活性和扩展性。本文深入探讨了如何通过结合容器化技术和微服务架构来构建和维护高效的云原生应用。首先概述了云原生的核心概念及其带来的优势,接着详细分析了容器化技术的关键作用以及微服务架构的设计原则。文章还展示了如何通过持续集成/持续部署(CI/CD)流程实现快速迭代,并通过实际案例说明如何应对分布式系统带来的复杂性挑战。最终,文中提出了一系列优化策略,旨在帮助开发者和运维人员提高系统的可靠性、安全性和性能。
|
4天前
|
Java Spring 容器
Spring注解开发,bean的作用范围及生命周期、Spring注解开发依赖注入
Spring注解开发,bean的作用范围及生命周期、Spring注解开发依赖注入
14 1
Spring注解开发,bean的作用范围及生命周期、Spring注解开发依赖注入
|
7天前
|
安全 持续交付 云计算
利用阿里云开发中遇到的挑战与解决方案
阿里云面临开发者在网络延迟、安全性、成本管理和自动化部署方面的挑战。解决方案包括使用全球负载均衡和CDN提升网络性能,依赖安全组和SSL证书保障数据安全,通过费用预估和资源优化控制成本,以及借助容器服务和DevOps工具实现自动化部署。阿里云将持续提供支持,助力开发者克服挑战。
59 1
|
8天前
|
安全 小程序 网络安全
阿里云腾讯云免费SSL证书托管系统的开发初衷
由于Google等公司推动,互联网安全趋势将SSL证书期限统一缩短至3个月,阿里云和腾讯云相继跟进。对于管理多个站点的小公司而言,手动维护变得繁琐。为自动化此过程,作者探索使用API解决方案。通过研究腾讯云API,成功实现证书的自动创建、审核和下载。为应对无免费到期提醒服务,作者创建计划任务,在证书到期前7天发送提醒,初期采用短信提醒,并增设公众号模板消息作为备选方案,完成到期提醒系统的构建。接下来的文章将讨论SSL证书的申请和下载流程。
38 2

相关产品

  • 容器计算服务