极客视点
极客时间编辑部
极客时间编辑部
113243 人已学习
免费领取
课程目录
已完结/共 3766 讲
2020年09月 (90讲)
时长 05:33
2020年08月 (93讲)
2020年07月 (93讲)
时长 05:51
2020年06月 (90讲)
2020年05月 (93讲)
2020年04月 (90讲)
2020年03月 (92讲)
时长 04:14
2020年02月 (87讲)
2020年01月 (91讲)
时长 00:00
2019年12月 (93讲)
2019年11月 (89讲)
2019年10月 (92讲)
2019年09月 (90讲)
时长 00:00
2019年08月 (91讲)
2019年07月 (92讲)
时长 03:45
2019年06月 (90讲)
2019年05月 (99讲)
2019年04月 (114讲)
2019年03月 (122讲)
2019年02月 (102讲)
2019年01月 (104讲)
2018年12月 (98讲)
2018年11月 (105讲)
时长 01:23
2018年10月 (123讲)
时长 02:06
2018年09月 (119讲)
2018年08月 (123讲)
2018年07月 (124讲)
2018年06月 (119讲)
时长 02:11
2018年05月 (124讲)
时长 03:16
2018年04月 (120讲)
2018年03月 (124讲)
2018年02月 (112讲)
2018年01月 (124讲)
时长 02:30
时长 02:34
2017年12月 (124讲)
时长 03:09
2017年11月 (120讲)
2017年10月 (86讲)
时长 03:18
时长 03:31
时长 04:25
极客视点
15
15
1.0x
00:00/05:29
登录|注册

如何评判负载保护的效果?

讲述:初明明大小:5.01M时长:05:29
你好,欢迎收听极客视点。
在企业业务系统中,技术选型多种多样,系统的性能和健壮性参差不齐,业务流量变化无常,如何才能保证各种业务流量安全运营,系统在任何情况下都不会崩溃呢?InfoQ 采访了腾讯科技增值服务部互娱 AMS 监控系统负责人朱龙云,了解了关于系统负载保护的设计原则。

负载保护的总体原则

虽然业务系统在正常情况通常是感知不到负载保护的存在,但是负载保护却是所有系统都必须具备的能力,它可以防止系统“崩溃”。那么,常见系统的负载保护在设计之初一般都遵循什么样的设计原则呢?
朱龙云表示,虽然各个系统的负载保护设计都会有自身的特点,但从设计角度可以分四层:
通用层:这一层是系统通常都需要的基础属性。例如易部署、高度可观察、具备容灾和扩缩容能力等。
机制层:这一层包含了与负载保护密切相关的基础属性,在负载保护系统演化中相对策略层变化是慢的。
策略层:这一层是负载保护的策略算法,是在系统外侧最容易被看到的,容易引起广泛的讨论。限流、降级和熔断算法就在这一层。
系统层:这一层主要是根据负载保护运营反馈,找出系统整体设计的缺陷和不足,进行相应调整,并将系统设计与自动扩容融合。
如果具体到负载策略的设计原则,一般需要考虑到调用链、业务与资源、整体与局部、扩展性等等。
调用链:在这一维度,要管控好上游入口的流量,实时计算自身服务资源消耗,并实时评估下游服务服务质量,确保整个调用链整体流量安全。
业务与资源:通常,业务流量会有时间错峰,你可以将错峰业务部署在一起,提高机器资源利用率。但这样可能会导致业务之间相互影响,负载保护就在此时发挥作用,当业务负载超过自身预分配资源时,继续使用系统尚未被其他业务消耗的资源。当各个业务总体消耗资源超过系统整个负载安全上限,按一定策略对相应业务进行限制。
整体与局部:达到整体效果的负载保护需要“均匀”分配到各个最小计算单元,但这里的“均匀”不是绝对数量的“均匀”,而是与每个计算单元相匹配的“均匀”,即与系统的负载均衡相匹配。
扩展性:业务对负载保护会有扩展性的需求,例如按照业务重要程度、用户分布或者资源消耗等进行个性化限流以及降级服务。

整体系统和单个服务的负载如何平衡?

系统的负载保护既包括单个服务的负载保护,也包括整体系统的负载保护,其设计原则的关键词是“均匀”,如何实现“均匀”呢?
这可以分两个部分来讨论。
第一部分是整体系统与调用 topo 中某个节点的关系,你需要先了解系统中的负载脆弱点以及原因。负载脆弱点可能是技术引起的,要针对脆弱点做好流量管理与自身负载的实时监测,对脆弱点上游做好熔断机制,并做好监测预警,防止该点引起系统整体雪崩。同时从长远角度考虑,还要尽可能优化或者消除因设计引起的系统脆弱点。
第二部分是单点服务集群与计算单元的关系。集群中各个计算单元需要负载均衡,而通常情况下,各个计算单元是异构的,这就需要匹配相应的计算资源能力。负载保护需要保证当系统过载时,负载依旧是均衡的,避免出现有的计算单元过载,有的计算单元还有资源剩余。
总之,负载保护的策略具体实现都需落实到单个计算资源,同时各个计算资源的信息需要上报汇总起来做整体决策。

上游模块与下游服务的负载保护

上下游之间的负载保护最重要的是做到相互信任不依赖,对方通知异常,能根据通知信息采取措施。对方不通知也能及时发现异常,采取措施,不会因为自身原因造成系统雪崩。
展开来讲就是上游需要为下游做好流量保护,但是下游不依赖这种保护。当上游没有保护好,系统流量过载,下游能触发自身的负载保护,当上游故障,流量突然下降,下游也能发现。如果下游服务异常,不能提供正常服务,下游需主动通知上游。如果没有通知,上游也需要能自身发现异常,并采取措施。而当下游服务正常时,上游也要及时探测到,并开放对外服务。
除了上述设计原则之外,一个系统的负载保护设计好了之后,还可以通过低能耗、适应性、容灾能力、透明扩缩容、健壮性等指标来判断它是否合理。
以上就是今天的内容,希望对你有所帮助。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
大纲
固定大纲
负载保护的总体原则
整体系统和单个服务的负载如何平衡?
上游模块与下游服务的负载保护
显示
设置
留言
收藏
24
沉浸
阅读
分享
手机端
快捷键
回顶部