接入层
负载均衡策略:
轮询 / 最少连接 / 一致性哈希,根据业务场景选择
接入层限流:
使用 令牌桶 / 漏桶算法控制瞬时流量
对不同业务接口可做分级限流
网关优化:
HTTP2 / gRPC 支持多路复用
keep-alive / 长连接减少 TCP 握手开销
应用层优
所有实例无状态 → 可以水平扩展
状态存储在缓存或DB
jvm调优,会用G1或ZGC减少停顿
缓存策略
Redis 集群 / Memcached
读多写少场景,缓存热点数据
缓存穿透 / 缓存雪崩 / 缓存击穿
过期 + 本地缓存 + 异步更新
数据库设计
分库分表,避免单表或单库成为瓶颈
Sharding Key 选择要均匀,防止热点
读写分离,主库写,从库读
配合缓存,减少主库压力
异步化和消息队列
写操作异步化
请求先写 MQ,再由消费者批量写 DB
高峰流量不会打垮 DB
队列削峰
消息队列充当缓冲区
支持多消费者、分区消费
幂等设计
防止重复消息导致数据异常
监控与运维
实时监控
QPS、RT、CPU、内存、GC、队列长度
Prometheus + Grafana / SkyWalking
自动扩容
CPU/内存或请求超阈值 → 自动加实例
异常恢复
MQ 消费失败 → 重试队列
DB 写入失败 → 回滚/补偿机制
高可用与容灾
多机房部署
多副本数据存储
服务健康检查 + 自动切换
幂等设计保证请求重试安全