1.
架构设计与目标定义
• 目标可用性:设定SLA 99.99%(年宕机时间• 业务分层:前端使用CDN+边缘缓存,负载均衡层使用HAProxy/Nginx,后端为多可用区云主机。
• 容错策略:主动-被动(Keepalived)与主动-主动(L4/L7 LB)并存。
• 健康检查:TCP/HTTP探测,interval=2s,rise=3,fall=2,超时=1s。
• 安全与域名:域名解析采用多线A记录和CNAME到CDN,DNS TTL=60s以便快速切换。

2.
负载均衡配置要点(L4/L7)
• LB软件选择:推荐HAProxy(L4/L7)或Nginx Plus(带健康检查)。• 算法与权重:采用roundrobin/leastconn,按后端权重分配(权重示例:节点A=100,节点B=80)。
• 会话保持:必要时使用sticky cookie或基于IP的平衡,TTL设置为300s。
• 示例配置参数:timeout connect 5s; timeout client 50s; timeout server 50s。
• SSL卸载:在LB层卸载SSL,后端使用HTTP内部通信以减轻CPU负载。
3.
故障恢复与Keepalived示例
• Keepalived心跳配置:vrrp_interval 2s,vrrp_priority 主=120/备=100。• 故障判定:连连失败3次触发切换,预期故障恢复时间
• VIP与路由:虚拟IP绑定到主节点,切换时同步ARP通告以快速收敛。
• 同步脚本:切换时执行/opt/sync-backend.sh 同步会话信息与缓存刷新。
• 日志与告警:通过Prometheus+Alertmanager监控vrrp状态并发送短信/邮件告警。
4.
带宽、DDoS防御与CDN整合
• 带宽规划:按峰值流量1.2x预留公共出口,示例:日峰值200Mbps则配置1Gbps链路。• DDoS防护:与云厂商购买清洗(scrubbing)能力,建议清洗带宽≥峰值的4倍,例如800Mbps流量,清洗能力≥3.2Gbps。
• CDN使用:静态资源走CDN,缓存命中率目标≥90%,减轻源站压力。
• 限流策略:Nginx limit_req zone=one:10m rate=200r/s 防止突发请求风暴。
• DNS容灾:使用主DNS与备DNS(不同运营商),TTL短以便切换。
5.
真实案例与配置数据演示
• 案例简介:越南电商平台 vn-shop.vn 在大促期间遭遇单节点CPU耗尽导致服务中断。• 采取措施:部署HAProxy+Keepalived+CDN,后端扩容为N=2主机,开启自动扩容策略。
• 效果数据:切换时间由原先的30s降至平均5.2s,月可用性由99.85%提升至99.995%。
• 后端实例配置示例(单台):
• 见下表,展示两台后端服务器与负载均衡器参数:
| 节点 | CPU | 内存 | 磁盘 | 带宽/公网IP |
|---|---|---|---|---|
| backend-01 | 8 vCPU | 16 GB | SSD 200 GB | 1 Gbps / 203.113.45.12 |
| backend-02 | 8 vCPU | 16 GB | SSD 200 GB | 1 Gbps / 203.113.45.13 |
| haproxy-vip | 4 vCPU | 8 GB | SSD 50 GB | 1 Gbps / VIP 203.113.45.100 |
6.
运维与演练建议
• 灾备演练:每季度进行一次故障切换演练,记录RTO与RPO。• 自动化脚本:使用Ansible/Terraform管理配置与版本回滚。
• 监控指标:观察请求成功率、响应时间、TCP重试次数、vrrp状态。
• 日志集中化:ELK或Loki集中日志,便于故障溯源。
• 成本控制:按需弹性扩缩容并结合按量与包年实例降低费用。
