分布式系统关键的设计模式有哪些?什么叫弹力设计?系统故障的原因都有哪些?正确对待故障的态度是怎样的?
打卡Day9:今天学习了《41|弹力设计篇之“认识故障和弹力设计”》,我的收获如下:
分布式系统关键的设计模式
- 容错(弹力Resiliency)
- 性能
- 管理
系统可用性测量
弹力 Resiliency:系统在不健康、不顺,甚至出错的情况下有能力hold得住,挺得住,能在逆境中力挽狂澜。
Availability = MTTF / MTTR + MTTF。
- MTTF 是 Mean Time To Failure,平均故障前的时间。
- MTTR 是 Mean Time To Recovery,平均修复时间。
为了提高可用性,我们要么提高系统的无故障时间,要么减少系统的故障恢复时间。
故障原因
- 无计划的。系统级故障、数据和介质故障、自然灾害、人为破坏、供电问题;
- 有计划的。日常任务、运维相关、升级相关。
故障原因分类:
- 网络
- 性能
- 安全
- 运维
- 管理
- 硬件
故障不可避免
- 故障是正常的,而且是常见的;
- 故障是不可预测突发的,而且相当难缠。
所以,不要尝试着去避免故障,而是要把处理故障的代码当成正常的功能做在架构里写在代码里。