系统配置与可靠性:从理论到实践的全面解析
1. 系统运行的挑战与应对
在系统运行过程中,会面临诸多挑战,主要包括外部服务问题和重负载下的意外行为。
1.1 外部服务问题
外部服务提供商虽能保证服务级别协议(SLAs),并有自己的随叫随到团队确保产品符合这些协议。但使用外部服务也存在弊端,当出现由外部服务引发的事件时,我们自身难以有效缓解问题,且在事件发生时,与第三方沟通问题会耗费大量时间。不过,将责任委托出去的能力,在一定程度上还是值得接受偶尔的无力感。
1.2 重负载下的意外行为
重负载下系统的意外行为是运营失败的常见原因。由于无法在精确的生产条件下测试服务,很难预测所有可能出现的边缘情况,也难以模拟组件在生产环境中面临的负载。重负载与意外的边缘情况结合,可能导致各种失败场景,如之前提到的自动缩放器示例。
1.3 运营系统故障对SLO的影响
运营系统故障可能导致服务级别目标(SLO)被打破。如果数据新鲜度SLO被打破,客户无需采取行动,只需等待数据到达;但如果偏斜度或完整性SLO被违反,由于数据质量受损,可能需要让客户参与进来。当检测到完整性或偏斜度问题时,受影响的事件需要重新处理才能正确交付:
- 处理不完整性时,需要从已知良好的最后一个检查点重新交付事件。
- 处理过度偏斜时,需要对已交付的事件进行重新洗牌,并分配到正确的每小时桶中。
事件的重新交付和重新洗牌都是手动完成的。在交付的事件被修改后,强烈建议客户重新处理这些事件,以产生足够质量的数据。
1.4 Spotify的经验
Spotify的事件交
超级会员免费看
订阅专栏 解锁全文

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



