高并发系统设计
Posted 说到做到_我的忍道
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高并发系统设计相关的知识,希望对你有一定的参考价值。
1. 基础篇
通用设计方法
- 横向扩展:组合多台性能机器组成一个分布式集群来共同抵御并发流量的冲击
- 纵向扩展:不断提升CPU性能
- 缓存:磁盘寻道ms级,CPU指令和内存寻址在纳秒级,
- 异步
架构分层
- 什么是分层架构
- 整体系统分为 N 个层次
- 例如:MVC、OSI网络模型、TCP/IP协议、Linux文件系统
- 分层的好处
- 简化系统,让不同的人专注做某一层次的事情
- 分层可以提升代码复用
- 分层更容易做横向的扩展
- 如何做系统分层
- 定义清楚每一层次的边界是什么
- 层次之间一定是相邻层相互依赖,数据的流转也只能在相邻的层间流转
- 分层架构的不足
- 增加了代码的复杂度
- 如果每个层次独立部署,层次通过网络来交互,多层的架构在性能上会有损耗
如何提升系统性能
-
三大目标
- 高性能
- 高并发
- 可扩展
- 性能优化原则
- 问题导向
- 20%精力解决80%性能问题
- 有数据支撑
- 过程是持续的
- 性能度量指标
- 平均值:敏感度比较差,如果这段时间有少量慢请求时,智能作为参考
- 最大值:过于敏感
- 分位值:有很多种,比如90分位、95分位、75分位
- 吞吐量:吞吐量=并发进程数/响应时间
- 同时在线用户数
- 用户体验
- 200ms第一个分界点,200ms以内瞬间发生
- 1s第二个分界点,1s以内可接受
- 1s以后就会有等待的感觉
- 99分位控制在200ms之内,99.99%在1s以内
- 高并发下的性能优化
- 提高系统的处理核心数
- 减少单次任务的响应时间
- CPU密集型
- IO密集型
以上是关于高并发系统设计的主要内容,如果未能解决你的问题,请参考以下文章