深入浅出分布式技术原理
陈现麟
伴鱼技术中台负责人,前小米工程师
21241 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 39 讲
深入浅出分布式技术原理
15
15
1.0x
00:00/00:00
登录|注册

12|雪崩(四):扩容,没有用钱解决不了的问题

Cluster Autoscaler(CA)
垂直扩容
水平扩容
机器节点层面
容器层面
硬件指标
服务满载指标
自适应过载判断标准
计划外扩容
计划内扩容
云原生时代的其他趋势
扩容作为系统过载问题的常用解决方法
扩容机制的实现方法
扩容机制的作用和应用场景
公有云或私有云的弹性资源利用
IDC 机房与云服务的对比
云原生时代软件的标志
自动扩容
过载判断
评估扩容需求
投入产出比(ROI)的考量
动态思维模式的引入
静态思维模式的不足
有损节流的局限性
降级
限流
熔断
思考题
总结
扩容机制与云原生的关系
扩容的实现
扩容的必要性
分布式系统稳定性的三板斧
分布式系统稳定性扩容策略

该思维导图由 AI 生成,仅供参考

你好,我是陈现麟。
在降级的学习中,我们掌握了降级机制的应用场景,手动降级和自动降级的实现原理,以及降级机制值得注意的一些关键问题,这样我们就可以引入分级降级策略,来快速降低系统的负载,确保核心服务的可用性了。现在我们已经学习完了分布式系统稳定性的三板斧:熔断、限流和降级,以后对维护后端系统的稳定性就更有信心了。
虽然熔断、限流和降级,很大程度上保障了系统的稳定性,但是从结果来看,它们都是通过放弃一定的用户体验和可用性,来确保系统在过载情况下依然正常运行的,这是一种通过有损节流,来降级系统负载的思路,那么有没有一种无损的方式,可以保障系统在过载下依然正常运行呢?
其实,这个问题就引出了一个典型的扩容场景,在这节课中,我们将一起讨论保障分布式系统稳定性的最后一个方法——扩容,了解需要扩容的原因,讨论如何实现扩容,最后再一起分析扩容机制与云原生的关系。这里要说明一点,因为缩容是扩容的逆向操作,所涉及的思路,原理和扩容一致,所以在课程中就不分开说明了。

为什么需要扩容

在“雪崩”系列的前三课中,我们分别介绍了解决分布式系统稳定性的三板斧:熔断、限流和降级,它们从系统底线的保障、核心服务的保障和非核心服务的牺牲这三个角度,全方位地保障着分布式系统的正常运行。但是,正如课程开始提到的,这些方法本质上都是对系统进行降级,通过有损的方式来保障系统不会雪崩。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入探讨了分布式系统稳定性保障的重要方法——扩容。作者首先指出了熔断、限流和降级等有损策略的局限性,强调了扩容作为一种无损策略的重要性。文章从为什么需要扩容和如何实现扩容两个方面展开讨论。作者指出扩容是一种动态思维模式,能够通过增加资源使系统重新恢复正常,而不是对系统进行降级处理。在实现扩容方面,介绍了水平扩容和垂直扩容两种方式,以及与云原生的关系。作者认为自动扩容和缩容是云原生时代软件的标志之一,利用云的能力实现软件能力的弹性变化。总的来说,本文全面介绍了扩容作为保障分布式系统稳定性的重要手段,对于需要了解分布式系统稳定性保障的读者具有一定的参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《深入浅出分布式技术原理》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(6)

  • 最新
  • 精选
  • 陈迪
    过载判断那里没理解。 按排队时间或者响应时间来判断很容易理解,但怎么变成下面变成“硬件指标”了,没搞懂这个逻辑。 “满载”指的又是啥

    作者回复: 排队时间和响应时间是从服务的角度来判断是否过载,如果从机器系统的角度来判断,那么就是内存使用率,对于内存,我们的满载可以定义内存使用率80%,也就是说内存使用率超过80%,系统就过载了。满载就是系统阈值,超过了就说明过载。

    2022-02-25
    2
    3
  • Bug Killer
    我们可以依据请求在队列中的平均等待时间来计算服务的负载 请求在队列中的等待时间怎么算

    作者回复: 这个是和实现方式相关的,如果内部实现是生产者消费者模型,可以通过埋点统计来实现,如果不是这种模型是不好统计的。

    2022-03-25
    1
  • 不吃辣👾
    一台虚拟机部署一个服务,虚拟机的硬件指标是不是可以代表服务负载问题?

    作者回复: 可以👍

    2022-03-30
  • peter
    请教老师两个问题: Q1:容器垂直扩容,升级的是节点资源,怎么图形中Pod变大了?(Pod图标变大应该是意味着Pod的资源变多了吧) Q2:如果不上云,扩容/缩容有框架吗?还是说需要自己开发? 如果上云,云会提供自动缩/扩容机制,对吗?

    作者回复: Q1:是的 Q2:上不去云都可以用K8S来自动扩容,只不过如果不上云,没有CA来扩容节点

    2022-02-23
  • 芋头
    原则: 1.有状态的服务一般采用垂直扩容VPA(Vertical pod autoscale) 2.无状态的服务采用水平扩容HPA(horizon pod autoscale ) 3.节点资源不够时需要CA(cluster autoscale)
    2023-04-21归属地:广东
    1
  • Jxin
    1.文中漏了一个点。决策扩容的依据是什么? 没有pod可用这是一个结果。判断pod能否支撑当前请求,不能有没有其他pod可以,都没有创建新pod。这已经涉及自适应负载均衡了,而这个在高并发场景很难实现,感兴趣可以想想。 2.一年多没关注了,之前的解法是采用大集群走负载均衡而不是自适应负载均衡,最后基于定时的负载检测决策是否扩容。
    2022-02-25
    1
收起评论
显示
设置
留言
6
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部