电商是大型架构核心系统,下面我详解电商百万QPS方案@mikechen
电商百万QPS
在大型电商系统中,流量高峰往往具有显著的突发性:大促开场、秒杀活动、直播带货联动。
这些场景,都会在极短时间内将请求量推向极高水平。
要支撑百万级 QPS,不仅需要足够的计算与存储能力,更关键的是构建一套稳定、高效、可扩展的负载均衡体系。

其中,L4(传输层)+ L7(应用层)多层混合负载均衡,已经成为电商高并发场景中的主流实践方案。
L4+L7多层混合架构
一个典型的多层混合方案通常如下:

Client ↓ CDN ↓ L4负载(LVS) ↓ L7负载(Nginx) ↓ Gateway ↓ Service ↓ Cache / DB
L4 层:基于 LVS 的极速转发
L4 入口一般由高性能四层代理或云四层 SLB 承担,负责:
- TCP 连接分发;
- 多机房流量接入;
- 后端 L7 集群的粗粒度负载均衡;
这一层强调“快”和“稳”。

# ipvsadm 配置示例(DR模式) ipvsadm -A -t 公网VIP:80 -s wrr # 加权轮询 ipvsadm -a -t 公网VIP:80 -r RS1:80 -g # -g 表示DR模式 ipvsadm -a -t 公网VIP:80 -r RS2:80 -g # Real Server上必须配置VIP(lo接口,抑制ARP) ip addr add 公网VIP/32 dev lo echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
通常用 LVS、云 NLB / SLB 等 L4 产品,或者 DPDK 优化后的专有 L4 负载均衡器。
职责:
接受大量 TCP/HTTP/HTTPS 连接,做高并发、高吞吐连接转发。
基于 IP + 端口把请求分发到后端 L7 节点池,可以使用 DR / DNAT / Tunnel 模式或云提供的透明模式。
L7 层:基于 Nginx的精细化控制
LVS 将流量分发到 Nginx 资源池后,Nginx 负责具体的业务逻辑分发。

worker_processes auto;
worker_rlimit_nofile 512000;
upstream backend {
least_conn; # 最小连接
server 10.0.0.1:8080 weight=10;
server 10.0.0.2:8080 weight=10;
keepalive 2000; # 长连接复用
}
server {
listen 80 reuseport; # 复用端口提升性能
location /seckill {
limit_req zone=seckill burst=100 nodelay; # 限流
limit_conn addr 50; # 连接数限制
proxy_pass http://backend;
proxy_http_version 1.1;
proxy_set_header Connection "";
}
}
Keepalive(长连接): 在 Nginx 与后端(Upstream)之间维持长连接,减少高并发下频繁创建 TCP 连接的开销(三路握手)。
Upstream 动态发现: 利用 Consul 或 Kubernetes Service 发现后端 POD,避免频繁 reload Nginx。
流程:
用户请求到 L4 LB,L4 基于后端 L7 IP 列表进行五元组分发,将百万并发连接分摊到多台 L7 节点。
L4 LB 内部维护连接表、做负载均衡算法(如一致性哈希、最少连接)。
并配合健康检查,自动把异常 L7 节点从池子剔除。