技术系统的韧性、可观测性与管理之道
1. 系统韧性的构建
在具有韧性的系统中,即便其他变量偏离正常状态,重要变量仍能维持在理想状态。例如,许多动物能避免因小伤口而死亡,皮肤割破后,原本受保护的血管组织暴露,但随着凝血块形成,失血会迅速减少至零。提升系统的韧性,能让描述系统的相关变量更加独立。
对于网络系统,通常要求快速响应,如 99% 的请求延迟需控制在 1 秒以内,理想情况下,在系统达到极限负载(如每秒 100000 个峰值请求)时仍能满足这一要求。我们需确保延迟变量不过分依赖请求速率变量。
以下是提升系统韧性的方法:
- 负载降低 :限流、负载丢弃/优先级排序、排队、负载均衡
- 延迟降低 :缓存、区域复制
- 负载适应 :自动扩展、过度配置
- 特定韧性措施 :超时设置、断路器、隔离舱、重试、故障转移、回退
- 元技术 :改进工具,如加快扩展或故障转移速度,尤其在系统关键路径存在人工操作较慢的情况下效果显著
这些工具会在多个层面发挥作用。例如,TCP 重传可应对数据包丢失问题,但应用层也会使用重试机制,因为 TCP 无法对整个数据流进行重试。
在实际应用中,请求速率和延迟之间并非线性关系,通常遵循某种有理函数。在达到一定负载之前,系统不饱和,响应迅速;但当负载接近容量时,队列会迅速填满,延迟也会相应增加。
我们可以通过添加服务器来扩展系统,这能使函数在水平方向上拉伸,在不违反延迟
超级会员免费看
订阅专栏 解锁全文
1246

被折叠的 条评论
为什么被折叠?



