高并发系统设计
文章目录
高并发的是指通过设计让系统可以处理更多的请求,承载更多的流量。高性能和高可用是高并发系统设计时必须考虑的因素。可扩展是系统可以更快速的完成扩容,更稳定的承担流量。
一 高性能
原则
- 问题导向: 避免盲目优化。优化可能对业务折中考虑,损伤业务。
- 八二原则: 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故障转移: 主备/心跳/服务发现
- 超时控制
- 限流:
- 降级: 关闭非核心服务
- 熔断: 防止链路雪崩
- 运维
- 灰度发布
- 故障演练
三 可扩展
难点
系统分层,每层都存在瓶颈
思路
拆分,复杂问题简单化
- 存储层可扩展: 垂直拆分/水平拆分
- 业务层可扩展: 根据业务拆分/根据接口重要程度拆分
文章作者 chunyewang
上次更新 2020-07-30