12|雪崩(四):扩容,没有用钱解决不了的问题
陈现麟
该思维导图由 AI 生成,仅供参考
你好,我是陈现麟。
在降级的学习中,我们掌握了降级机制的应用场景,手动降级和自动降级的实现原理,以及降级机制值得注意的一些关键问题,这样我们就可以引入分级降级策略,来快速降低系统的负载,确保核心服务的可用性了。现在我们已经学习完了分布式系统稳定性的三板斧:熔断、限流和降级,以后对维护后端系统的稳定性就更有信心了。
虽然熔断、限流和降级,很大程度上保障了系统的稳定性,但是从结果来看,它们都是通过放弃一定的用户体验和可用性,来确保系统在过载情况下依然正常运行的,这是一种通过有损节流,来降级系统负载的思路,那么有没有一种无损的方式,可以保障系统在过载下依然正常运行呢?
其实,这个问题就引出了一个典型的扩容场景,在这节课中,我们将一起讨论保障分布式系统稳定性的最后一个方法——扩容,了解需要扩容的原因,讨论如何实现扩容,最后再一起分析扩容机制与云原生的关系。这里要说明一点,因为缩容是扩容的逆向操作,所涉及的思路,原理和扩容一致,所以在课程中就不分开说明了。
为什么需要扩容
在“雪崩”系列的前三课中,我们分别介绍了解决分布式系统稳定性的三板斧:熔断、限流和降级,它们从系统底线的保障、核心服务的保障和非核心服务的牺牲这三个角度,全方位地保障着分布式系统的正常运行。但是,正如课程开始提到的,这些方法本质上都是对系统进行降级,通过有损的方式来保障系统不会雪崩。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文深入探讨了分布式系统稳定性保障的重要方法——扩容。作者首先指出了熔断、限流和降级等有损策略的局限性,强调了扩容作为一种无损策略的重要性。文章从为什么需要扩容和如何实现扩容两个方面展开讨论。作者指出扩容是一种动态思维模式,能够通过增加资源使系统重新恢复正常,而不是对系统进行降级处理。在实现扩容方面,介绍了水平扩容和垂直扩容两种方式,以及与云原生的关系。作者认为自动扩容和缩容是云原生时代软件的标志之一,利用云的能力实现软件能力的弹性变化。总的来说,本文全面介绍了扩容作为保障分布式系统稳定性的重要手段,对于需要了解分布式系统稳定性保障的读者具有一定的参考价值。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《深入浅出分布式技术原理》,新⼈⾸单¥59
《深入浅出分布式技术原理》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(6)
- 最新
- 精选
- 陈迪过载判断那里没理解。 按排队时间或者响应时间来判断很容易理解,但怎么变成下面变成“硬件指标”了,没搞懂这个逻辑。 “满载”指的又是啥
作者回复: 排队时间和响应时间是从服务的角度来判断是否过载,如果从机器系统的角度来判断,那么就是内存使用率,对于内存,我们的满载可以定义内存使用率80%,也就是说内存使用率超过80%,系统就过载了。满载就是系统阈值,超过了就说明过载。
2022-02-2523 - Bug Killer我们可以依据请求在队列中的平均等待时间来计算服务的负载 请求在队列中的等待时间怎么算
作者回复: 这个是和实现方式相关的,如果内部实现是生产者消费者模型,可以通过埋点统计来实现,如果不是这种模型是不好统计的。
2022-03-251 - 不吃辣👾一台虚拟机部署一个服务,虚拟机的硬件指标是不是可以代表服务负载问题?
作者回复: 可以👍
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
- Jxin1.文中漏了一个点。决策扩容的依据是什么? 没有pod可用这是一个结果。判断pod能否支撑当前请求,不能有没有其他pod可以,都没有创建新pod。这已经涉及自适应负载均衡了,而这个在高并发场景很难实现,感兴趣可以想想。 2.一年多没关注了,之前的解法是采用大集群走负载均衡而不是自适应负载均衡,最后基于定时的负载检测决策是否扩容。2022-02-251
收起评论