高并发系统设计

Posted 说到做到_我的忍道

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高并发系统设计相关的知识,希望对你有一定的参考价值。

1. 基础篇

通用设计方法

  • 横向扩展:组合多台性能机器组成一个分布式集群来共同抵御并发流量的冲击
  • 纵向扩展:不断提升CPU性能
  • 缓存:磁盘寻道ms级,CPU指令和内存寻址在纳秒级,
  • 异步

架构分层

  • 什么是分层架构
  1. 整体系统分为 N 个层次
  2. 例如:MVC、OSI网络模型、TCP/IP协议、Linux文件系统
  • 分层的好处
  1. 简化系统,让不同的人专注做某一层次的事情
  2. 分层可以提升代码复用
  3. 分层更容易做横向的扩展
  • 如何做系统分层
  1. 定义清楚每一层次的边界是什么
  2. 层次之间一定是相邻层相互依赖,数据的流转也只能在相邻的层间流转
  • 分层架构的不足
  1. 增加了代码的复杂度
  2. 如果每个层次独立部署,层次通过网络来交互,多层的架构在性能上会有损耗

如何提升系统性能

  • 三大目标

  1. 高性能
  2. 高并发
  3. 可扩展
  • 性能优化原则
  1. 问题导向
  2. 20%精力解决80%性能问题
  3. 有数据支撑
  4. 过程是持续的
  • 性能度量指标
  1. 平均值:敏感度比较差,如果这段时间有少量慢请求时,智能作为参考
  2. 最大值:过于敏感
  3. 分位值:有很多种,比如90分位、95分位、75分位
  4. 吞吐量:吞吐量=并发进程数/响应时间
  5. 同时在线用户数
  6. 用户体验
    1. 200ms第一个分界点,200ms以内瞬间发生
    2. 1s第二个分界点,1s以内可接受
    3. 1s以后就会有等待的感觉
    4. 99分位控制在200ms之内,99.99%在1s以内
  • 高并发下的性能优化
  1. 提高系统的处理核心数
  2. 减少单次任务的响应时间
    1. CPU密集型
    2. IO密集型

 

 

 

 

 

 

 

 

 

以上是关于高并发系统设计的主要内容,如果未能解决你的问题,请参考以下文章

并发编程高并发相关技术

对高并发的理解(转载)

对高并发的理解(转载)

架构高可用高并发系统的设计原则

互联网三高架构:高并发高可用高性能

成为架构师课程系列高并发系统设计的三大目标:高性能高可用可扩展