弹力设计概述

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秒
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 弹力设计又叫容错设计,其中着眼于分布式系统的各种“容忍”能力,包括容错能力(服务隔离、异步调用、请求幂等性)、可伸...
    匠丶阅读 4,035评论 0 0
  • 概要:系统可用性测量、故障原因、宕机原因、故障不可避免。 高并发架构、异地多活架构、容器化架构、微服务架构、高可用...
    hedgehog1112阅读 4,097评论 0 0
  • 我们身处于一个充斥着分布式系统解决方案的计算机时代,无论是支付宝、微信这样顶级流量产品、还是区块链、IOT等热门概...
    零一间阅读 5,027评论 0 3
  • 事务概念 事务就是对数据库的一次操作,要么全部成功,要么全部失败。事务是最小的逻辑执行单元,也是数据库并发控制的基...
    dirft_din阅读 1,562评论 0 0
  • 1. 分布式事物 不知道你是否遇到过这样的情况,去小卖铺买东西,付了钱,但是店主因为处理了一些其他事,居然忘记你付...
    无痕25阅读 1,508评论 0 0

友情链接更多精彩内容