负载均衡 SLB 考试重点
云平台服务
在多台应用实例前分发流量,提升可用性与水平扩展能力。
结构示意
flowchart TB
C[客户端] --> SLB
SLB --> A1[实例1]
SLB --> A2[实例2]
SLB --> A3[实例3]
讲解视频
知识说明
负载均衡(如阿里云 SLB)把请求分到多台后端。健康检查踢掉故障机;会话保持(sticky)可缓解本地 Session 问题,但真正扩展仍建议无状态。
算法有轮询、加权、最小连接等。它解决的是物理/运行视图里的「如何把流量接到一簇对等实例」,不能替代业务层的幂等设计。
特点
- 流量分发
- 健康检查
- 四层/七层
- 与弹性伸缩配合
优点
- 高可用
- 易扩容
- 对客户端暴露稳定入口
局限
- 会话亲和有局限
- 配置错误会导致全站故障
- 需要后端无状态才能吃满红利
适用
Web 集群 API 入口 灰度与蓝绿的辅助
例子展示 —— 选课高峰:两台应用 + SLB
问题
单实例 CPU 打满,加机器后学生仍只打到旧 IP。
做法
域名解析到 SLB;两台 ECS 注册为后端。注意登录 Session:若粘滞会话关闭,本地 Session 会丢,应改 Redis 或 JWT。
sequenceDiagram
participant U as 用户
participant L as SLB
participant A as ECS-A
participant B as ECS-B
U->>L: HTTPS
L->>A: 转发
Note over L,B: A 不健康则切到 B
// 健康检查接口,供 SLB 探测
@RestController
class HealthController {
@GetMapping("/healthz")
public String ok() { return "OK"; }
}
@app.get("/healthz")
def healthz():
return "OK"