高并发的是指通过设计让系统可以处理更多的请求,承载更多的流量。高性能和高可用是高并发系统设计时必须考虑的因素。可扩展是系统可以更快速的完成扩容,更稳定的承担流量。

一 高性能

原则

  • 问题导向: 避免盲目优化。优化可能对业务折中考虑,损伤业务。
  • 八二原则: 20%的时间解决80%的性能问题。
  • 数据支撑: 更好的了解优化效果。
  • 可持续: 确定目标不断寻找瓶颈。

指标

  • 均值
  • 最大值
  • 分位值 ✅

优化

  • CPU密集型: 通过Profile工具寻找性能问题

  • IO密集型: 通过系统工具分析网络协议栈、网卡、磁盘、文件系统、内存等

二 高可用

度量

  • MTBF(Mean Time Between Failure): 平均故障间隔
  • MTTR(Mean Time To Repair): 故障的平均恢复时间

计算

Availability = MTBF / (MTBF + MTTR)

高可用性 年故障时间 日故障时间
90% 36.5d 2.4h
99% 3.65d 14.4m
99.9 % 8h 1.44m
99.99% 52m 8.6s

思路

  • 设计
    • failover故障转移: 主备/心跳/服务发现
    • 超时控制
    • 限流:
    • 降级: 关闭非核心服务
    • 熔断: 防止链路雪崩
  • 运维
    • 灰度发布
    • 故障演练

三 可扩展

难点

系统分层,每层都存在瓶颈

思路

拆分,复杂问题简单化

  • 存储层可扩展: 垂直拆分/水平拆分
  • 业务层可扩展: 根据业务拆分/根据接口重要程度拆分