跳至主要內容

高并发设计

苏文广大约 2 分钟架构架构并发

高并发设计

高并发定义

高并发是指在一定时间内,大量的请求同时访问应用程序或系统,导致系统出现性能瓶颈,如响应时间变慢、服务不可用等问题。

高并发通常出现在促销活动、秒杀场景、网站流量高峰期等情况下。

衡量高并发的指标

  • 响应时间(RT)
  • 并发数(QPS)
  • 请求成功率(成功数/总数)
  • 资源利用率
    • CPU
    • 内存
    • IO
    • JVM GC

影响并发的因素

  • 硬件
    • CPU
    • 内存
    • 磁盘
  • 软件架构
    • 单体架构
    • 分布式架构
  • 数据库
    • MySQL
    • Redis
  • 网络
    • 带宽, 上行速率/下行速率
  • 程序代码

高并发设计

如果设计一个高并发的系统, 考虑的因素比较多, 这里用控制变量法去控制其他因素保持不变, 只看程序代码的方式, 设计一个高并发的程序

  • 硬件固定

    4c8G的硬件

  • 软件架构固定

    使用单体架构, 测试单体的并发性能可以粗略估算水平扩容的分布式架构的性能; 当然, 具体分布式架构下的并发性能还是需要测试, 但是这里为了测试方便才使用单体架构

  • 数据库固定

    固定使用MySQL和Redis

  • 网络固定

    本地网络, 家庭网络的路由大概是千兆网, 这里网络不会成为卡点

  • 编程语言固定

    Java

  • 改变程序代码(库存接口)

    1. 仅使用MySQL 无缓存 (MySQL的缓存忽略不计)

    2. MySQL + Redis 2级缓存

    3. MySQL + Redis + 内存 3级缓存

      以上三种迭代的方式, 测试并发性能

测试无缓存

测试2级缓存

测试3级缓存