垂直扩展
文章图片
水平扩展
文章图片
自我注册和自我发现
- 服务注册表
- 客户端
- 微服务实例
文章图片
按需扩展
文章图片
自动扩展的意义 好处:
- 提高了高可用性和容错能力
- 增加了可伸缩性
- 具有最佳使用率,并节约成本
- 优先考虑某些服务或服务组
文章图片
基础架构级别
【Spring|Spring Cloud学习笔记25——自动扩展】
文章图片
自动扩展的常用方法 资源限制
文章图片
特定时间段
文章图片
消息长度
文章图片
业务参数
文章图片
根据预测
- 历史信息
- 当前趋势
文章图片
所需功能 依赖两个关键功能:
- 一个容器抽象层,在许多物理或虚拟机上提供统一的抽象:如果没有统一的抽象,所部署的实例可能千差万别,很难按照统一编排进行扩展
- 容器编排和初始化系统在集群抽象之上智能管理部署
- 容器编排工具提供了一个抽象层来处理大规模的集装箱部署
- 具备发现、资源管理、监控和部署等功能
- 集群管理:将一个虚拟的或物理的集群作为一个大型的机器进行管理,这些机器在资源方面可能是异构的,但是基本上还是以Linux为主要的操作系统的机器,这些虚拟的集群可以在云端也可以在本地,或者是两地的结合
- 自动部署:应该能够支持应用程序容器的多个版本,并支持在大量的集群的基础上进行滚动升级,这些工具应该能够处理错误,并且可以回滚到一些可用的版本上
- 可伸缩性:可以根据需要来处理应用程序实例的自动以及手动的可伸缩性能,并将其作为一个主要目标来进行优化利用
- 运行状况监控:适用于管理集群、结点、应用程序的运行状况,可以从集群中删除一些故障的机器或应用程序实例
- 基础架构抽象:做了抽象后,开发者不用担心机器、容量等问题,因为这些都是容器编排软件来决定的
- 资源优化
- 资源分配:根据应用程序,开发人员设置的一些资源可用性和约束来分配服务器,资源分配将基于约束来进行实施
- 服务可用性:要确保服务在集群中能够正常运行,在发生机器故障的情况下,容器编排要通过在集群中的某个其他的机器上能够重新启动这些服务来自动地处理这些故障
- 敏捷性:将工作负载分配给可用的一些资源,或者在资源需求发生变化时将工作负载迁至其他的机器上,此外还可以根据业务关键性、业务的优先级等等来设置约束,重新调整资源
- 隔离:这些工具中有一些是提供了一些即开即用的资源隔离的功能,因此即使这个应用程序没有进行容器化,也能够实现资源的隔离
- 传播(
Spread
) - 装箱(
Bin Packing
) - 随机(
Random
)
文章图片
装箱 试图通过机器来填充来确保机器的最大使用率
文章图片
随机 随机地在某一台机器上部署
文章图片
常用的容器编排技术
Docker Swarm
Kubernetes
Apache Mesos
推荐阅读
- =======j2ee|spring用注解实现注入的@resource,@autowired,@inject区别
- jar|springboot项目打成jar包和war包,并部署(快速打包部署)
- 数据库|效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中【附源代码下载】)...
- java人生|35K 入职华为Java开发那天,我哭了(这 5 个月做的一切都值了)
- Java毕业设计项目实战篇|Java项目:在线嘿嘿网盘系统设计和实现(java+Springboot+ssm+mysql+maven)
- 微服务|微服务系列:服务发现与注册-----Eureka(面试突击!你想了解的Eureka都在这里.持续更新中......)
- 每日一书|每日一书丨终于有人把云原生讲明白了
- java|ApplicationListener和SpringApplicationRunListener的联系
- Spring|SpringSecurity--自定义登录页面、注销登录配置
- 性能|性能工具之 Jmeter 通过 SpringBoot 工程启动