火山引擎内容分发网络(CDN)由遍布全球的缓存节点组成。火山引擎 CDN 将站点内容分发至靠近用户的缓存节点,使得用户可就近快速获取所需内容,有效地解决公网拥塞、网络延迟等问题,优化用户访问体验。在火山引擎 CDN 中,您可以配置多个源站实现源站间的故障转移。通过设置每个源站的权重,实现回源请求在源站间的负载均衡。
火山引擎 CDN 提供的负载均衡和故障转移机制是不可定制的,但是可以满足大部分业务的需求。但是,如果您的业务需要自定义源站负载均衡和故障转移的逻辑,可以使用火山引擎云调度(GTM)。
同时,如果您有来自多个云厂商的 CDN 服务,您需要将用户请求按照特定的规则在不同云厂商之间分配,您也可以使用云调度 GTM。
您可以通过云调度 GTM 在火山引擎 CDN 中实现源站在多可用区或多地域之间的负载均衡、健康检查与容灾切换:
下图展示了源站部署在公有云服务中一个地域的多个可用区时,您通过云调度 GTM 实现的负载均衡、健康检查和容灾切换方案。域名为 www.example.com
的网站连接到火山引擎 CDN 服务。网站的域名会通过 CNAME 记录指向火山引擎 CDN 的 CNAME www.example.com.volcgslb.com
。同时,您在火山引擎 CDN 中把域名的回源地址设置为云调度 GTM 的调度域名 www.example.com.gtm.volcdns.com
。火山引擎 CDN 的回源节点向回源地址发起回源请求时,云调度 GTM 会根据您设置的路由策略返回主源站或备源站的 IP 地址。主源站和备源站位于相同地域的不同可用区。源站之间的距离较近,因此流量切换对网络延迟造成的影响较小。主源站和备源站采用同城双活模式,即主源站承担 50% 的回源请求,备源站承担 50% 的回源请求。
注意
如果源站是私有存储桶,则不适用该方案。
云调度 GTM 会定期对主源站和备源站的服务器进行健康检查,判定每个源站的服务器是否可用:
参见以下步骤实现上图所示的多个可用区之间的负载均衡和容灾。
在云调度 GTM 中,完成以下步骤:
地址池 | 目标地址 | 目标地址权重 |
---|---|---|
源站(主) |
| 25 |
源站(备) |
| 25 |
在火山引擎 CDN 中,完成以下步骤:
您的网站需要通过 CNAME 记录连接到 CDN 服务。不同 CDN 厂商的 CNAME 域名不同。在云调度 GTM 中,您可以把不同 CDN 厂商的 CNAME 域名设置为目标地址并配置路由策略。用户在访问网站域名时,云调度 GTM 会根据您设置的路由策略返回一条合适的 CNAME 记录,从而把用户连接到 CNAME 记录对应的 CDN 厂商。
在下图中,用户访问域名为 www.example.com
的网站时,云调度 GTM 会根据路由策略返回一条合适的 CNAME 记录。
火山引擎内容分发网络(CDN)承担 70% 的用户请求,第三方 CDN 厂商承担 30% 的用户请求。云调度 GTM 会定期对 CNAME 域名进行健康检查。如果第三方 CDN 厂商不可用,第三方 CDN 厂商所承担的用户请求会被转移到火山引擎内容分发网络(CDN)。
参见以下步骤实现上图所示的多 CDN 厂商间的负载均衡和容灾。
在火山引擎 CDN 和其他 CDN 厂商中,创建加速域名,并根据您的需求配置该加速域名。参见 新增域名。
在云调度 GTM 中,完成以下步骤:
目标地址 | 目标地址权重 |
---|---|
| 70 |
| 30 |