弹力设计概述

1. 概述

  • 容错设计又叫弹力设计,分布式系统的各种容忍能力。
    • 容错能力(服务隔离,异步调用,请求幂等性)
    • 可伸缩性(有/无状态的服务)
    • 一致性(补偿事务,重试)
    • 应对大流量的能力(熔断,降级)

2. 常见设计

  1. 隔离设计
  2. 异步通讯设计
  3. 幂等性设计
  4. 服务的状态
  5. 补偿事务
  6. 重试设计
  7. 熔断设计
  8. 限流设计
  9. 降级设计

3. 系统可用性测量

  • 对于分布式系统的容错设计,也叫弹力设计

    • 意思是,系统在不健康,不顺,甚至出错的情况下有能力hold住,能在这种逆境下力挽狂澜的能力。
  • 要做好一个设计,我们需要设计目标,通过这个目标来指导我们的设计,否则在没有明确目标的指导下,设计会变得非常不明确,并且不可预测,不可测量。

    • 可测试,可测量是软件设计中非常重要的事情。

3.1 计算系统可用性

  • 一个工业界 使用的公式
可用性 = MTTF/(MTTF+MTTR)
  • MTTF(Mean Time to Failure) 平均故障前的时间。
    • 系统能够正常运行多长时间才发生一次故障。
    • 系统的可靠性越高,MTTF 越长。
  • MTTR(Mean Time to Recovery) 平均修复时间
    • 即从故障出现到故障修复的这段时间。
    • 这段时间越短越好。
  • 常说多少个9
系统可用性% 宕机时间/年 宕机时间/月 宕机时间/周 宕机时间/天
90%(1个9) 36.5天 72小时 16.8小时 2.4小时
99%(2个9) 3.65天 7.20小时 1.68小时 14.4分
999%(3个9) 8.76小时 43.8分 10.1分 1.44分
9999%(4个9) 52.56分 4.38分 1.01分 8.66秒
99999%(5个9) 5.256分 25.9秒 6.05秒 0.87秒

你可能感兴趣的:(弹力设计概述)