GSLB地理调度:从“就近接入”到“容量感知”

122 阅读5分钟

引言

GSLB(Global Server Load Balancing,全局负载均衡)是大规模分布式系统的流量入口。当系统规模从百万 QPS 迈向千万 QPS 时,GSLB 的调度逻辑会发生本质性的转变——从单一的"就近接入"原则,演进为"容量感知"的多因子决策系统。

这不是简单的参数调优,而是调度范式的根本性变化。


一、百万 QPS:就近接入的黄金法则

在百万 QPS 场景下,GSLB 的核心逻辑相对直接:

基于地理位置的就近调度

  • 根据用户 IP 判断地理位置
  • 将请求导向物理距离最近的数据中心
  • 同一 ISP 优先(减少跨网延迟)

这种模式下,调度决策的输入因子较少:

调度结果 = f(用户IP地理位置, 目标机房位置, ISP归属)

为什么这种模式在百万 QPS 下有效?

  1. 容量冗余充足:单机房容量通常按 2-3 倍峰值设计,很少触及容量上限
  2. 流量分布相对均匀:百万级用户的地理分布相对可预测
  3. 故障影响可控:单机房故障后,其他机房有足够余量承接

二、千万 QPS:就近调度的失效边界

当流量规模达到千万 QPS,"就近接入"开始暴露其局限性:

问题 1:热点区域的容量瓶颈

假设某视频平台在晚高峰时段,华东地区流量突增 40%。如果坚持就近调度,上海机房可能面临:

  • CPU 利用率超过安全阈值
  • 网络带宽接近物理上限
  • 响应延迟显著上升

此时,将部分流量调度到杭州或南京机房,虽然增加了 5-10ms 的网络延迟,但整体用户体验反而更好。

问题 2:成本结构的复杂性

千万 QPS 场景下,带宽成本往往是最大的运营支出项。不同机房、不同 ISP、不同时段的带宽单价可能相差 2-3 倍。纯粹的就近调度可能导致:

  • 高价带宽被打满,低价带宽闲置
  • 月度带宽费用比最优方案高出 30% 以上

问题 3:ISP 互联质量的动态变化

跨 ISP 访问的质量并非静态不变。某些时段,电信用户访问联通机房的延迟可能比访问电信机房还低(取决于骨干网拥塞情况)。


三、多因子调度算法:从规则到决策

千万 QPS 的 GSLB 需要引入多因子调度算法,将调度决策从"规则匹配"升级为"实时决策":

调度结果 = f(地理位置, 实时容量, 带宽成本, ISP质量, 业务权重)

核心因子权重设计

因子百万 QPS 权重千万 QPS 权重说明
地理距离70%30%基础因子,但不再主导
实时容量10%35%防止单点过载
带宽成本5%20%成本优化核心
ISP 质量15%15%跨网访问质量

实时容量感知的实现

机房可调度权重 = 基础权重 × 容量系数

容量系数计算:
- 负载 < 60%:系数 = 1.0
- 负载 60%-80%:系数 = 0.7
- 负载 80%-90%:系数 = 0.3
- 负载 > 90%:系数 = 0(停止调入新流量)

这种设计确保了调度系统能够在机房接近满载前主动分流,而非等到故障发生后被动切换。


四、BGP Anycast 与 DNS 调度的配合

在千万 QPS 场景下,单纯依赖 DNS 调度存在固有局限:

  • DNS 缓存导致调度生效延迟
  • 无法做到请求级别的精细控制

因此,成熟的千万 QPS 架构通常采用 BGP Anycast + DNS 调度 的混合方案:

分工协作

调度层技术方案调度粒度生效时间
粗粒度DNS 调度区域级别分钟级(受缓存影响)
细粒度BGP Anycast请求级别秒级

BGP Anycast 的容量感知

BGP Anycast 通过路由协议实现"天然的就近接入",但如何让它具备容量感知能力?

核心思路:根据机房负载动态调整 BGP 路由宣告

当机房负载超过阈值时:
1. 收缩该机房的 BGP 宣告范围(减少 Prepend 或撤回部分前缀)
2. 扩大相邻机房的 BGP 宣告范围
3. 流量自动通过路由层面重新分布

这种方案的优势在于:

  • 对客户端完全透明
  • 不依赖 DNS 缓存刷新
  • 可以实现秒级的流量调度

五、调度决策的工程实践

决策链路设计

在千万 QPS 场景下,调度决策本身也需要高可用设计:

  1. 决策中心化 vs 分布式

    • 百万 QPS:中心化决策器即可满足需求
    • 千万 QPS:采用分布式决策 + 定期同步的模式,避免决策器成为瓶颈
  2. 数据采集频率

    • 容量数据:5-10 秒采集一次
    • 成本数据:小时级更新
    • 质量数据:分钟级探测
  3. 决策平滑机制

    • 避免流量剧烈震荡
    • 设置单次调度的流量上限(如最多调走 20%)
    • 引入调度冷却期

六、总结:调度范式的本质差异

维度百万 QPS千万 QPS
核心目标最小化网络延迟全局最优(性能 + 成本 + 稳定性)
决策因子地理位置为主多因子加权
容量考量被动应对(故障切换)主动感知(预防性调度)
成本意识较弱强(带宽成本占比高)
调度技术DNS 调度为主DNS + BGP Anycast 混合
决策架构中心化分布式

千万 QPS 的 GSLB 不再是一个简单的"路由表",而是一个需要持续运行的实时决策系统。它需要整合容量监控、成本核算、质量探测等多个子系统的数据,在毫秒级时间内做出全局最优的调度决策。

这种复杂性的增长,正是千万 QPS 不是百万 QPS 简单乘以 10 倍的又一个例证。