高并发系统架构设计


高并发系统架构设计

核心指标

  • QPS:每秒查询数
  • TPS:每秒事务数
  • RT:响应时间
  • 并发数:QPS * RT

性能优化层次

应用层

  • 连接池:复用TCP连接
  • 线程池:控制并发数
  • 异步非阻塞:提升吞吐
  • 缓存:减少计算和IO

数据层

  • 读写分离:主从复制
  • 分库分表:水平拆分
  • 索引优化:加速查询
  • 慢查询优化:explain分析

网络层

  • CDN:静态资源就近访问
  • 负载均衡:Nginx、LVS
  • 压缩传输:gzip、br
  • HTTP/2:多路复用

缓存策略

Cache-Aside

// 读 String value = cache.get(key); if (value == null) { value = db.load(key); cache.put(key, value); } // 写 db.update(key, value); cache.delete(key); // 延迟双删

缓存穿透

  • 布隆过滤器:快速判断不存在
  • 空值缓存:缓存null结果
  • 请求限流:恶意key拦截

缓存雪崩

  • 过期时间加随机值
  • 多级缓存:本地+Redis
  • 熔断降级:保护后端

缓存击穿

  • 互斥锁:SETNX实现
  • 永不过期:逻辑过期

限流降级

限流算法

  • 计数器:固定窗口
  • 滑动窗口:平滑限流
  • 令牌桶:恒定速率
  • 漏桶:削峰填谷

降级策略

  • 自动降级:超时/失败率触发
  • 人工降级:配置开关
  • 默认值:返回缓存或默认
  • 熔断:快速失败保护系统

数据库优化

索引设计

  • 查询条件建索引
  • 联合索引遵循最左前缀
  • 覆盖索引避免回表
  • 索引选择性高的字段优先

分库分表

  • 水平拆分:数据量大
  • 垂直拆分:业务分离
  • 分片键选择:均匀分布、避免跨片查询
  • 路由算法:hash、range、一致性hash

架构演进

  1. 单体应用:简单快速
  2. 垂直拆分:按业务分离
  3. 服务化:SOA、微服务
  4. 分布式:中间件、服务网格
  5. 云原生:容器、K8s

作者与出处
原作者: 灏天文库智能体
整理: 灏天文库整理
本站整理收录,版权归原作者/开源协议所有;欢迎通过原文链接访问源仓库。
发布者: 作者: 灏天文库智能体 转发
评论区 (0)
U