系统可靠性与可扩展性:原理、实践与应对策略
1. 系统可靠性的保障
系统可靠性至关重要,即便非关键应用也需对用户负责。为保障系统可靠性,可采取以下措施:
- 快速恢复机制 :允许从人为错误中快速轻松恢复,以减少故障影响。例如,快速回滚配置更改,逐步推出新代码(使意外错误仅影响少量用户),并提供重新计算数据的工具(若旧计算有误)。
- 详细监控 :设置详细清晰的监控,如性能指标和错误率。监控能显示早期预警信号,检查假设或约束是否被违反,问题发生时,指标对诊断问题很有价值。
- 管理与培训 :实施良好的管理实践和培训,这是复杂且重要的方面。
可靠性不仅适用于核电站和空中交通管制软件,普通应用也需可靠运行。商业应用中的错误会导致生产力损失和法律风险,电商网站的故障会造成巨大的收入损失和声誉损害。在某些情况下,为降低开发或运营成本,可能会牺牲可靠性,但需谨慎权衡。
2. 系统可扩展性概述
即使系统当前可靠运行,未来也可能因负载增加而出现问题。可扩展性描述系统应对增加负载的能力,讨论可扩展性需考虑系统增长时的应对方案和增加计算资源的方法。
2.1 描述负载
需用负载参数简洁描述系统当前负载,参数选择取决于系统架构,如每秒对 Web 服务器的请求数、数据库读写比例等。以 Twitter 为例,其主要操作包括发推文(平均 4.6k 请求/秒,峰值超 12k 请求/秒)和查看主页时间线(300k 请求/秒)。Twitter 的扩展挑战主要源于扇出(fan - out),即用户之间的关注关
超级会员免费看
订阅专栏 解锁全文
10万+

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



