You need to enable JavaScript to run this app.
导航
通过 GTM 在 CDN 中实现回源请求的负载均衡和容灾切换
最近更新时间:2024.05.31 09:09:09首次发布时间:2024.05.31 09:09:09

在火山引擎内容分发网络(CDN)中,您可以将源站配置为 火山引擎云调度(GTM)的调度域名,实现源站间高度定制化的负载均衡、健康检查及容灾切换等策略。GTM 是一款基于 DNS 解析对请求进行调度的云服务。

说明

  • 关于 CDN 在源站故障发生时的回源重试逻辑,参见 回源重试逻辑

  • 如果您的源站包含私有存储桶,则 GTM 不适用该场景。

在下图中,您将 CDN 中的源站配置迁移到了 GTM 中,实现了回源请求的一个基本负载均衡配置。GTM 根据源站的权重,将被选中的源站 IP 地址返回给 CDN。

这是一个 GTM 的基本配置。在 使用场景 中,我们会基于 GTM 的特性展示更多较复杂的配置。

功能对比

关于 CDN 和 GTM 提供的相关能力对比,参见下表。

CDN
GTM

健康检查

  • 在向一个源站发送回源请求时,CDN 可以知晓该源站是否可用。

  • 在发送回源请求时,如果无法从一个源站获取内容,CDN 才会尝试其他源站。

  • 对于被 CDN 标记为不可用的源站,只有在发送回源请求时,CDN 才会去检查其可用性。

  • 可以主动检查所有源站的可用性。

  • 如果检测到不可用的源站,GTM 会屏蔽该源站。减少了连接尝试所耗费的时间。

  • 可以指定健康检查的频率。

源站地址数量

默认情况下,CDN 中配置的主源站加上备源站的总数不能超过 50 个。

  • GTM 标准版可以配置 500 个源站。

  • GTM 旗舰版可以配置 2000 个源站。

负载均衡

基于源站级别的权重提供负载均衡。

除了源站级别的权重,GTM 可以对源站进行分组,提供源站组级别的权重。

容灾切换

提供一组主源站,一组备源站,具有一定的回源重试机制,保障回源高可用。

  • 单次回源失败:如果对一个源站的回源请求失败,CDN 会尝试其他源站。回源重试的次数可以按需调整。

  • 源站故障:如果对一个源站的回源请求频繁超时,CDN 判定该源站发生故障并且屏蔽对该源站的访问,同时对该源站进行被动探测。如果探测发现源站已恢复,CDN 对其取消屏蔽。

提供复杂的容灾配置。

  • 具备自动容灾切换和手动容灾切换。

  • 提供 "地址池集合" 对源站进行分组。通过指定可用源站的阈值来配置一个地址池集合的可用性。

使用场景

负载均衡

场景

您有多个源站,其中 3 个在上海,2 个在杭州。您需要上海的源站承接 70% 的请求,杭州的源站承接 30% 的请求。对于在上海的源站,您需要进一步分配这 3 个源站承接的请求比例,分别是50%,40%,10%。对于在杭州的源站,您需要这 2 个源站承接的请求比例分别是 50%,50%。

GTM 配置

在 GTM 中,您做以下配置:

  • 创建一个地址池,名称为 "上海地址池"。该地址池包含上海的 3 个源站。设置这 3 个源站的权重分别为 35,28,7。

  • 创建一个地址池,名称为 "杭州地址池"。该地址池包含杭州的 2 个源站。设置这 2 个源站的权重都为 15。

  • 创建一个地址池集合,名称为 "江浙沪地址池集合",包含这两个地址池。

说明

"上海地址池" 的总权重为 35+28+7=70。"杭州地址池" 的总权重为 15+15=30。因此,两个地址池承接的请求比例为 7:3。同时,在 "上海地址池" 中,三个源站承接的请求比例分别为 50%,40%,10%。

容灾切换

场景

随着业务的发展,您在北京和天津也部署了源站,作为备用。北京和天津各有 2 个源站。每个源站承接相同数量的请求。您在 GTM 中创建了一个路由规则。在该路由规则中,您指定如果上海和杭州的所有源站都无法访问,GTM 自动将用户请求引导到北京或天津的源站。

说明

在 GTM 中,您可以为地址池设置最少可用地址数量。例如,您对上海地址池设置最少可用地址数量 3。在这个情况下,如果地址池中的可用地址数量下降到 3 以下,GTM 判定该地址池不可用。

GTM 配置

在 GTM 中,您做以下配置:

  • 分别创建 "北京地址池" 和 "天津地址池"。设置每个源站的权重为 1。

  • 创建一个地址池集合,名称为 "华北地址池集合",包含这两个地址池。

  • 创建一条路由规则,包含这两个地址池集合。修改 "江浙沪地址池集合" 的名称为 "华东地址池集合"。设置 "华东地址池集合" 的优先级最高,实现地址池集合级别的容灾切换。