分布式系统关键的设计模式有哪些?什么叫弹力设计?系统故障的原因都有哪些?正确对待故障的态度是怎样的?

打卡Day9:今天学习了《41|弹力设计篇之“认识故障和弹力设计”》,我的收获如下:

分布式系统关键的设计模式

  • 容错(弹力Resiliency)
  • 性能
  • 管理

系统可用性测量

弹力 Resiliency:系统在不健康、不顺,甚至出错的情况下有能力hold得住,挺得住,能在逆境中力挽狂澜。

Availability = MTTF / MTTR + MTTF​。

  • MTTF 是 Mean Time To Failure,平均故障前的时间。
  • MTTR 是 Mean Time To Recovery,平均修复时间。

为了提高可用性,我们要么提高系统的无故障时间,要么减少系统的故障恢复时间。

故障原因

  • 无计划的。系统级故障、数据和介质故障、自然灾害、人为破坏、供电问题;
  • 有计划的。日常任务、运维相关、升级相关。

故障原因分类:

  1. 网络
  2. 性能
  3. 安全
  4. 运维
  5. 管理
  6. 硬件

故障不可避免

  • 故障是正常的,而且是常见的;
  • 故障是不可预测突发的,而且相当难缠。

所以,不要尝试着去避免故障,而是要把处理故障的代码当成正常的功能做在架构里写在代码里。

左耳朵耗子带你重学《左耳听风》

https://time.geekbang.org/column/article/3912