16 | 高可用架构的十种武器:怎么度量系统的可用性?
李智慧
该思维导图由 AI 生成,仅供参考
你好,我是李智慧。
互联网应用是面向一般大众的应用系统,他们可能会随时需要使用应用,那么应用就必须要保持随时可用,即所谓的 小时可用。但是互联网应用又可能会遇到硬件故障、软件故障、黑客攻击等等各种不可用的场景。
业界通常用多少个 9 来说明互联网应用的可用性。比如说淘宝的可用性是 4 个 9,就是说淘宝的服务 99.99% 可用。这句话的意思是,淘宝的服务要保证在所有的运行时间里只有 0.01% 不可用,那么一年就只有大概 53 分钟不可用。这个 99.99% 就叫做系统的可用性指标,这个值的计算公式是:
可用性指标反映系统的可用程度,也可以估算出年度不可用时间。我们熟悉的互联网产品(淘宝、百度、微信等)的可用性大多是 4 个 9。
不同的应用可用性可能会相差很大,主要差别就是在面对各种故障的时候,高可用设计做得是否足够好,我总结了一些高可用架构的技术方案,并称之为高可用架构的十种武器。
第一种武器:解耦
耦合度过高是软件设计的万恶之源,也是造成系统可用性问题的罪魁祸首。一个高度耦合的系统,牵一发而动全身,任何微小的改动都可能会导致意想不到的 bug 和系统崩溃。连最基本的功能维护都已经勉为其难,更不用奢谈什么高可用了。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
高可用架构是保证互联网应用系统随时可用的重要手段。本文介绍了高可用架构的十种武器,包括解耦、隔离、异步、备份、重试和熔断等技术方案。解耦和隔离通过降低组件之间的耦合度和物理上的分割来提高系统可用性。异步通过消息队列实现组件之间的进一步解耦,提高系统可用性。备份和失效转移构成一个高可用解决方案,通过多台服务器构成集群来保证服务的可用性。重试和熔断则是针对远程服务调用的故障处理机制,保证系统整体的高可用性。补偿、限流、降级和多活等武器也是保障系统可用性的重要手段。此外,高可用的运维方案如自动化测试、自动化监控、预发布验证和灰度发布也对系统的稳定性起到关键作用。这些技术方案和运维手段为保障系统的可用性提供了有力的支持,对于互联网应用的开发和运维具有重要的指导意义。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《李智慧 · 高并发架构实战课》,新⼈⾸单¥59
《李智慧 · 高并发架构实战课》,新⼈⾸单¥59
立即购买
登录 后留言
全部留言(7)
- 最新
- 精选
- 👽我觉得,还可以考虑上运维角度的服务编排治理能力。比如: 故障节点的驱逐和重新唤醒。出现故障的节点对其进行驱逐,并重新拉起一个。 弹性,根据请求量和节点压力,动态启动新的节点。
作者回复: 很赞,自动化运维及弹性扩容
2022-03-2535 - 花轮君核心业务流程任何的变更都需要经过评审,并且相关的依赖服务/中间件必须添加降级开关,控制影响面,降低损失
作者回复: 赞
2022-04-072 - javaadu熔断和降级有什么区别呢?
作者回复: 熔断是部分服务器不可用,请求转移到其他服务器;降级是部分功能不可用,需要人为关闭这些功能的请求处理开关,降级是功能设计的一部分
2022-03-2652 - peter李老师这个总结真不错。请教几个问题: Q1:有可用性达到5个9的公司吗? Q2:熔断器处于半开状态时,给其发请求,这个请求是一个真实的请求还是一个测试用的请求? Q3:电商的确认收货是用定时器实现的吗?
作者回复: 1 不了解,某些金融机构可能会达到,但是成本也非常高 2 真实 3 批处理任务,也算一种定时任务
2022-03-2522 - Geek_be8042全是理论,如何实践啊
作者回复: 前面的设计案例都是关于设计的实践啊 这一讲的目的就是做一个理论的回顾
2022-03-312 - Steven存储系统的分区、分片 排队
作者回复: 不错,存储分片是隔离的一种,排队通常就是一种异步
2022-03-25 - IT小村总结得不错,确实是常见的方式2022-10-29归属地:北京
收起评论