GSLB 是什么
GSLB(全局负载均衡)在多个站点或多个可用区之上做流量调度:依据探测到的站点健康状态、用户地理位置与网络就近性、容量水位和权重,把用户解析或引导到更合适的站点。它解决的是单机房故障与跨地域访问质量问题,把原来靠人工改解析的切换动作变成自动决策。
基本信息
| 定位 | 站点级(跨机房/跨地域)调度,不替代单机房的四层七层负载 |
|---|---|
| 输入 | 健康探测结果、地理与网络拓扑、容量水位、权重 |
| 输出 | 返回健康站点地址:DNS 应答、Anycast 路由或应用层调度 |
| 常见形态 | 云厂商流量管理服务、自建智能 DNS、Anycast 集群 |
| 判定机制 | 连续失败次数摘除、连续成功加观察期回加(防抖动) |
| 关键依赖 | 探测探针的覆盖度与 DNS TTL 长度 |
典型使用场景
- 双活或多活机房:主站点故障时把解析切到仍健康的站点
- 跨地域就近接入:给不同区域用户返回更近的入口地址
- 灰度放量:用权重把少量流量先导到新站点观察
- 容量调度:某站点水位偏高时降低分给它的流量比例
- 切换演练:按剧本演练站点切换并记录实际生效耗时
探测与判定要点
探测与判定要点
# 探测层次:越往下越能代表业务可用
# 1) TCP 端口探测 只说明端口在监听
# 2) HTTP 状态码探测 只说明进程还能返回 200
# 3) 业务级探针 校验关键接口返回内容与下游依赖
# 摘除与回加判定(防抖动)
# 摘除:连续 3 次探测失败才摘除站点
# 回加:连续 5 次成功且观察期通过才回加
# DNS TTL 决定故障扩散速度,TTL 越长残留流量越多调度依据读法
| 依据 | 作用 | 注意 |
|---|---|---|
| 健康探测 | 判断站点是否还能承载流量 | 只探端口会在依赖故障时误判为健康 |
| 就近性 | 按地理或实测网络路径分配入口 | 地图位置不等于实际路径,要用实测数据校准 |
| 权重 | 按比例分配流量,用于灰度 | 变更生效速度受 TTL 制约,不是即时生效 |
| 容量水位 | 站点接近过载时减少流量 | 指标不可靠时会造成错误调度 |
| 会话保持 | 把同一用户固定到同一站点 | 跨站点切换会中断长连接会话 |
GSLB 只负责把流量导到健康站点,数据层的复制与一致性要单独设计:切换后写入落到新站点,如果数据没同步过来,业务照样出错。
回切条件与切换条件是两回事:只定义什么时候切过去、不定义什么时候能切回来,长期会出现两边数据都有写入、无法合并的局面。