You need to enable JavaScript to run this app.
导航

工作原理

最近更新时间2023.12.07 15:38:23

首次发布时间2022.04.25 16:01:23

火山引擎云调度(GTM)在 DNS 层面把用户流量路由到目标地址。用户会直接访问目标地址,因此用户流量不会经过云调度 GTM。

云调度 GTM 如何在 DNS 层面路由用户流量

假设您的服务域名是 example.com,服务有多个公网 IP 地址,而且您在云调度 GTM 中添加了这些地址。您在火山引擎云解析 DNS 中创建了一条 CNAME 记录,该记录把 example.com 映射到调度域名 example.com.gtm.volcdns.com。

alt

云调度 GTM 在 DNS 层面路由用户流量的步骤如下:

  1. 客户端向递归 DNS 服务器发送 DNS 查询请求,查询 example.com 域。
  2. 递归 DNS 服务器找到 example.com 域的权威 DNS 服务器,并向该服务器发送 DNS 查询请求。权威 DNS 服务器返回一条 CNAME 记录。该 CNAME 记录指向调度域名 example.com.gtm.volcdns.com。
  3. 递归 DNS 服务器找到调度域名 example.com.gtm.volcdns.com 的权威 DNS 服务器。调度域名的权威 DNS 服务器是由云调度 GTM 提供的。递归 DNS 服务器向权威 DNS 服务器发送 DNS 查询请求,查询 example.com.gtm.volcdns.com 域。
  4. 云调度 GTM 的权威 DNS 服务器收到 DNS 查询请求后,会根据以下因素返回包含合适的目标地址的 A 记录:
    • 客户端 IP 地址的网络运营商和地理位置
    • 目标地址的网络运营商和地理位置
    • 目标地址的健康检查结果
    • 您在云调度 GTM 中配置的路由策略
  5. 云调度 GTM 的权威 DNS 服务器把包含目标地址的 A 记录返回到递归 DNS 服务器。
  6. 递归 DNS 服务器把 A 记录返回到客户端。假设返回的目标地址是 1.1.1.1。
  7. 客户端直接与目标地址 1.1.1.1 建立连接。流量不会经过云调度 GTM。

云调度 GTM 支持的功能

云调度 GTM 支持以下功能。

功能描述
地址编排您可以使用目标地址(Address)、地址池(Pool)、地址池集合(Pool Set)和路由规则(Rule)对目标地址进行分组编排和管理。例如,您可以将位于同一个可用区,且属于相同网络运营商的多个目标地址添加到同一个地址池。您也可以将多个位于同一个地域,但位于不同可用区的地址池添加到同一个地址池集合。
就近接入云调度 GTM 根据客户端的 IP 地址判断客户端的地理位置和所属的网络运营商,并且将来自客户端的流量路由到属于相同网络运营商且距离客户端最近的目标地址。
负载均衡您可以在地址池中为目标地址设置权重,也可以在地址池集合中为地址池设置权重,从而自定义目标地址之间和地址池之间的流量分配比例。
健康检查云调度 GTM 可以根据目标地址的地理位置和网络运营商推荐合适的健康检查探测点,并从探测点对目标地址定时进行基于多种协议的健康检查。
故障转移云调度 GTM 支持自动故障转移和手动故障转移。根据健康检查结果,云调度 GTM 可以在地址池集合内的目标地址之间进行自动故障转移,或者在地址池集合之间进行自动故障转移。您也可以根据告警通知进行手动故障转移。

就近接入和负载均衡

云调度 GTM 根据调度策略、路由规则、路由模式等配置,以及客户端的地理位置和所属的网络运营商等信息,把流量路由到不同的地址池集合。然后,云调度 GTM 根据地址池集合中目标地址的权重把流量按权重路由到不同的目标地址。

alt

健康检查和故障转移

云调度 GTM 可以对目标地址进行健康检查。根据健康检查的结果,云调度 GTM 可以进行自动故障转移。您也可以根据告警通知进行手动故障转移。

健康检查

云调度 GTM 会通过一个或多个探测点向目标地址发起基于多种协议的健康检查。根据健康检查的结果,目标地址会被判定为正常或故障。

alt

自动故障转移

根据健康检查结果,云调度 GTM 会自动进行故障转移(failover)。故障转移逻辑如下:

  • 地址池集合内的故障转移:当某个目标地址不可用时,云调度 GTM 不再将流量路由到该目标地址。当该目标地址恢复可用后,云调度 GTM 会再次把流量路由到该地址。
  • 地址池集合之间的故障转移:当主地址池集合不可用时,云调度 GTM 会按照优先级从高到低的顺序将流量转移到同一路由规则中的另一个可用的地址池集合。如果所有地址池集合都不可用,云调度 GTM 会把流量转移到优先级最高的地址池集合。同一个路由规则中,只能有一个地址池集合生效。如果更高优先级的地址池集合恢复可用,云调度 GTM 会再次把流量转移到更高优先级的地址池集合。

云调度 GTM 不判定地址池的可用性。因此,地址池与自动故障转移无关。

alt

手动故障转移

云调度 GTM 也可以通过告警通知的方式提醒您手动进行故障转移。您在云调度 GTM 中创建告警策略并把告警策略与 GTM 实例管理。如果 GTM 实例中的事件触发了告警策略,火山引擎云监控会通过您配置的沟通渠道发送告警通知。

alt

把您的服务接入云调度 GTM

您可以通过调度域名 CNAME 或您在火山引擎云解析(DNS)中添加的域名把您的服务接入云调度 GTM。

调度域名 CNAME

云调度 GTM 会根据您的域名生成一个调度域名 CNAME。您需要在您的域名解析服务商处创建一条 CNAME 记录,将您的域名指向调度域名 CNAME。

在云解析 DNS 中添加的域名

您无需创建 CNAME 记录。云调度 GTM 会自动把您的域名解析到调度域名 CNAME。