Spring Cloud学习笔记25——自动扩展

垂直扩展

在这里插入图片描述

水平扩展

在这里插入图片描述

自我注册和自我发现

  • 服务注册表
  • 客户端
  • 微服务实例

在这里插入图片描述

按需扩展

在这里插入图片描述

自动扩展的意义

好处:

  • 提高了高可用性和容错能力
  • 增加了可伸缩性
  • 具有最佳使用率,并节约成本
  • 优先考虑某些服务或服务组

自动扩展的常见模式

自动扩展的不同级别

应用程序级别

在这里插入图片描述

基础架构级别

在这里插入图片描述

自动扩展的常用方法

资源限制

在这里插入图片描述

特定时间段

在这里插入图片描述

消息长度

在这里插入图片描述

业务参数

在这里插入图片描述

根据预测

  • 历史信息
  • 当前趋势

如何实现微服务的自动扩展

要思考的问题

在这里插入图片描述

所需功能

依赖两个关键功能:

  • 一个容器抽象层,在许多物理或虚拟机上提供统一的抽象:如果没有统一的抽象,所部署的实例可能千差万别,很难按照统一编排进行扩展
  • 容器编排和初始化系统在集群抽象之上智能管理部署

容器编排

  • 容器编排工具提供了一个抽象层来处理大规模的集装箱部署
  • 具备发现、资源管理、监控和部署等功能
容器编排工作职责
  • 集群管理:将一个虚拟的或物理的集群作为一个大型的机器进行管理,这些机器在资源方面可能是异构的,但是基本上还是以Linux为主要的操作系统的机器,这些虚拟的集群可以在云端也可以在本地,或者是两地的结合
  • 自动部署:应该能够支持应用程序容器的多个版本,并支持在大量的集群的基础上进行滚动升级,这些工具应该能够处理错误,并且可以回滚到一些可用的版本上
  • 可伸缩性:可以根据需要来处理应用程序实例的自动以及手动的可伸缩性能,并将其作为一个主要目标来进行优化利用
  • 运行状况监控:适用于管理集群、结点、应用程序的运行状况,可以从集群中删除一些故障的机器或应用程序实例
  • 基础架构抽象:做了抽象后,开发者不用担心机器、容量等问题,因为这些都是容器编排软件来决定的
  • 资源优化
  • 资源分配:根据应用程序,开发人员设置的一些资源可用性和约束来分配服务器,资源分配将基于约束来进行实施
  • 服务可用性:要确保服务在集群中能够正常运行,在发生机器故障的情况下,容器编排要通过在集群中的某个其他的机器上能够重新启动这些服务来自动地处理这些故障
  • 敏捷性:将工作负载分配给可用的一些资源,或者在资源需求发生变化时将工作负载迁至其他的机器上,此外还可以根据业务关键性、业务的优先级等等来设置约束,重新调整资源
  • 隔离:这些工具中有一些是提供了一些即开即用的资源隔离的功能,因此即使这个应用程序没有进行容器化,也能够实现资源的隔离

资源分配常用算法

  • 传播(Spread
  • 装箱(Bin Packing
  • 随机(Random

传播

将负载平均分配到各个主机上
在这里插入图片描述

装箱

试图通过机器来填充来确保机器的最大使用率
在这里插入图片描述

随机

随机地在某一台机器上部署
在这里插入图片描述

常用的容器编排技术

  • Docker Swarm
  • Kubernetes
  • Apache Mesos
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值