一、高并发架构目标高并发系统设计的核心目标:1. 高可用(HA) 服务不中断 故障自动恢复2. 高性能(Performance) 支撑千万级 QPS 确保低延迟3. 高扩展(Scalability) 水平扩展能力强 容易增加节点4. 易运维(Operability) 可监控、可报警 容灾和扩容简单
二、数据库架构演进路线互联网高并发数据库通常经历五大阶段:阶段架构特征适用场景单机 MySQL简单,单点早期创业项目主从复制读写分离可选中小流量读写分离多从库支持读扩展读请求多分库分表水平/垂直拆分,写扩展核心表大数据分布式数据库Vitess/TiDB/OceanBase百亿级数据,大型互联网
三、核心架构组件3.1 数据库层 MySQL:核心存储 主从复制:读写分离,高可用 分库分表:水平/垂直拆分 分布式数据库:自动分片、自动扩容3.2 中间件/Proxy ProxySQL / MyCat / ShardingSphere 功能:路由、读写分离、故障转移、分片管理3.3 缓存层 Redis / Memcached 热点数据缓存 高并发削峰3.4 消息队列 Kafka / RabbitMQ / RocketMQ 异步写入 流量削峰 事件驱动架构
四、高并发设计核心原则1. 读写分离 + 多从库2. 水平分库分表,限制单表规模3. 热点数据缓存,减少数据库压力4. 分布式 ID,避免自增冲突5. 异步处理 + MQ 消峰6. 归档历史数据,OLTP 与 OLAP 分离7. 灰度切流 + 平滑扩容8. 监控告警 + 自动故障恢复
五、分库分表设计总结
水平拆分:按 ID、hash 或时间分片 垂直拆分:主表 + 扩展表 路由规则:应用层或中间件 跨表查询:尽量避免,或通过聚合服务
六、分布式 ID & 唯一性
Snowflake:趋势递增,分布式生成 Leaf / 号段模式:高性能 ID 解决问题:多数据库写入唯一性 & 高并发
七、高可用架构总结方案优点缺点主从复制简单,成熟主库宕机需人工切换MHA自动切换,成熟部署复杂半同步复制减少数据丢失写延迟增加Group Replication官方 HA,自动恢复性能略低 InnoDB Cluster强一致,自动恢复复杂Orchestrator自动化,高可视化学习成本高互联网常用组合:主从复制 + Orchestrator + ProxySQL
八、缓存 + MQ + 异步设计 缓存:热点查询,快速响应 消息队列:异步写入,削峰填谷 异步处理:减轻数据库压力,提高系统吞吐量
九、数据归档与 OLAP 分离 主库:实时 OLTP 历史数据 → OLAP / 数据仓库 避免主库膨胀 支持报表、分析
十、高并发系统监控指标 1. QPS / TPS:流量监控 2. 慢查询:SQL 性能 3. 锁等待:行锁 / 表锁 4. Buffer Pool 命中率 5. 主从延迟 6. 磁盘 / CPU / 内存使用率
十一、架构全景图 应用 │ API Gateway │ ProxySQL │ ┌─────────┼─────────┐ │ │ │shard1 shard2 shard3 │ │ │主从 主从 主从 │ │ │Redis Redis Redis │ │ │归档/ETL → 数据仓库 │ BI / 报表特点: 读写分离 分库分表 缓存加速 数据归档 灰度扩容
十二、亿级高并发总结口诀 分库分表限单表, 读写分离多从库; 缓存热点削峰谷, MQ异步保高吞; 灰度扩容保平滑, 归档分析分OLAP; 自动故障保高可, 监控告警不可少。
十三、面试级总结面试官问:如何设计高并发数据库架构?标准回答:1 分库分表(水平 + 垂直)2 主从复制 + 读写分离3 缓存热点数据4 异步写入 + MQ 消峰5 分布式 ID 生成6 灰度切流 + 平滑扩容7 数据归档 + OLAP 分离8 高可用 + 自动故障切换9 监控告警核心理念:高性能、高可用、高扩展、可运维