高并发系统设计40讲之 如何做到高可用

可用性的度量

MTBF(Mean Time Between Failure)是平均故障间隔的意思,代表两次故障的间隔时间,也就是系统正常运转的平均时间。这个时间越长,系统稳定性越高。
MTTR(Mean Time To Repair)表示故障的平均恢复时间,也可以理解为平均故障时间。这个值越小,故障对于用户的影响越小。
可用性与 MTBF 和 MTTR 的值息息相关,我们可以用下面的公式表示它们之间的关系:

Availability = MTBF / (MTBF + MTTR)

高可用系统设计的思路

1. 系统设计
  1. 预先考虑如何自动化地发现故障,发生故障之后要如何解决,
    对应的优化方法:failover(故障转移)、超时控制以及降级和限流。
    一般来说,发生 failover 的节点可能有两种情况:1、 是在完全对等的节点之间做 failover。2、 是在不对等的节点之间,即系统中存在主节点也存在备节点—使用最广泛的故障检测机制是“心跳”
  2. 系统间调用超时的控制 如何确定超时时间-----通过收集系统之间的调用日志,统计比如说 99% 的响应时间是怎样的,然后依据这个时间来指定超时时间。 超时时间不是一成不变的,需要在后面的系统维护过程中不断的修改
  3. 降级-----保证核心服务的稳定而牺牲非核心服务。
  4. 限流-----通过对并发的请求进行限速来保护系统,超过请求次数直接返回错误

冗余,服务冗余+数据冗余+设备冗余—主备,负载均衡,failover
取舍----降级,限流,熔断,超时控制

2. 系统运维

灰度发布、故障演练、监控报警

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章