高并发是大型架构核心,下面我详解百万级高并发@mikechen
百万并发并发架构
对于百万级并发场景,单点服务器或简单的负载均衡方案,往往难以承受突发流量,也无法保证业务连续性。
因此,通常需要采用分层架构,将流量调度、应用处理与故障切换职责拆分,并通过成熟组件组合实现稳定运行。

LVS、Nginx 与 Keepalived 的组合,正是较为经典且实用的高可用架构方案。
百万并发并发架构设计
该方案通常分为三层:

Client ↓ VIP(Keepalived漂移) ↓ LVS(四层负载均衡) ↓ Nginx集群(七层反向代理) ↓ 应用服务集群(Java / Go / PHP) ↓ Redis / DB / MQ
这种分工的优势在于:LVS 具备极高的转发效率,适合作为第一入口;
Nginx 灵活性强,能够根据域名、URL、Header 等进行精细化调度;
Keepalived 则确保任一关键节点异常时,业务入口仍可对外提供服务。
LVS+Keepalived
LVS 负责四层负载均衡,承担海量连接的接入与分发。
2 台 LVS 节点(主备),使用 DR 模式(推荐,性能最高),绑定 VIP(Virtual IP)。
LVS 负责四层负载均衡,将流量分发到 Nginx 集群。

Keepalived 负责高可用切换,通过 VRRP 机制保障入口节点故障时快速漂移 VIP。
global_defs {
router_id LVS_MASTER
}
vrrp_script chk_nginx { # 可监控 Nginx 进程
script "/etc/keepalived/check_nginx.sh"
interval 2
weight -20
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.100/24
}
track_script {
chk_nginx
}
}
virtual_server 192.168.1.100 80 { # 或 443
delay_loop 6
lb_algo rr
lb_kind DR
protocol TCP
real_server 192.168.1.10 80 { # Nginx1
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
# 再添加其他 Nginx real_server
}
Nginx+系统内核优化
Nginx 负责七层负载均衡与反向代理,处理 HTTP/HTTPS 请求并进一步分流。
3~10+ 台 Nginx 节点(可水平扩展),负责七层反向代理、负载均衡、缓存、SSL 卸载、限流等。

后端业务服务器集群(Tomcat、Golang、Java Spring Boot 等),可进一步用 Nginx 或其他 LB 均衡。
upstream backend {
least_conn; # 或 ip_hash
server app1:8080 weight=5 max_fails=3 fail_timeout=30s;
server app2:8080 weight=5;
keepalive 32; # 连接复用
}
server {
listen 80;
server_name _;
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Connection "";
}
# 静态资源、缓存、限流等配置...
}
系统内核优化(LVS/Nginx 节点)
关键性能优化参数:
# 端口范围扩展 net.ipv4.ip_local_port_range = 1024 65535 # 连接数限制 net.core.somaxconn = 65535 # ARP 优化(避免脑裂) net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.all.arp_announce = 2