名称:负载均衡策略 description:负载均衡算法、健康检查和高可用模式的综合指南。
负载均衡策略
概述
负载均衡通过将流量分发到多个目标,以提高可用性、性能和弹性。本指南涵盖算法、健康检查和运维最佳实践。
目录
基础概念
核心目标:
- 均匀分发流量
- 避免单点故障
- 通过路由到健康目标来改善延迟
第4层与第7层
- 第4层(TCP/UDP):速度快,协议无关,无HTTP感知。
- 第7层(HTTP/HTTPS):根据路径/主机/头信息路由,支持TLS终止。
算法
常见策略:
- 轮询:简单轮转。
- 加权轮询:偏向性能更强的节点。
- 最少连接:路由到最不繁忙的节点。
- 加权最少连接:结合权重与负载。
- IP哈希:基于客户端IP的粘性路由。
- 随机:开销低。
- 最短响应时间:优先选择延迟最低的目标。
健康检查
类型:
- 主动检查:定期探测。
- 被动检查:从实时流量中检测故障。
结合使用以实现最佳检测和恢复。
会话保持
粘性会话将同一客户端路由到同一目标:
- 基于Cookie的亲和性
- IP哈希
仅在状态无法外部化时使用。
TLS终止
在负载均衡器处终止TLS,以实现:
- 集中式证书管理
- 更好的性能
- 更易观测性
可选地重新加密到后端,以实现端到端安全。
连接排空
在缩容或部署期间允许进行中的请求完成:
- 设置排空超时
- 停止新连接
全局负载均衡
GSLB跨区域路由:
- 基于地理位置的路由
- 基于延迟的路由
- 故障转移路由
云负载均衡器
- AWS:ALB(L7),NLB(L4)
- GCP:HTTP(S)负载均衡器,TCP/UDP负载均衡器
- Azure:应用程序网关,Azure负载均衡器
软件负载均衡器
- NGINX:流行的L7代理,支持健康检查。
- HAProxy:高性能L4/L7负载均衡器。
- Envoy:现代代理,提供丰富的遥测功能。
服务网格负载均衡
服务网格(Istio, Linkerd)提供客户端负载均衡,并支持重试策略、熔断和遥测。
自动扩缩容集成
与自动扩缩容结合:
- 基于CPU、延迟或队列深度进行扩缩容
- 预热节点以减少冷启动
监控
跟踪指标:
- 请求速率和延迟
- 后端错误率
- 健康检查失败
- 流量分布不均
故障排查
常见问题:
- 健康检查配置错误(假阴性)
- 粘性会话导致热点
- TLS不匹配或SNI路由错误
- 排空时间过短,无法处理长请求
相关技能
09-微服务/api网关09-微服务/服务网格15-DevOps基础设施/kubernetes-helm