You need to enable JavaScript to run this app.
导航
工作原理
最近更新时间:2024.06.14 17:15:38首次发布时间:2022.04.25 16:01:23

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

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

当收到客户端的 DNS 查询时,BytePlus GTM 根据地理位置、ISP、访问延迟和 IDC 机房容量等因素返回 DNS 查询响应。 通过这种方式,用户流量被路由到适当的目标地址。

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

图片

云调度 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 查询请求后,会根据您在云调度 GTM 中配置的策略返回包含合适的目标地址的 A 记录。
  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 支持基础路由和智能路由策略。

健康检查

云调度 GTM 可以根据目标地址的地理位置和网络运营商推荐合适的健康检查探测点,并从探测点对目标地址定时进行基于多种协议的健康检查。

故障转移

云调度 GTM 支持自动故障转移和手动故障转移。根据健康检查结果,云调度 GTM 可以在地址池集合内的目标地址之间进行自动故障转移,或者在地址池集合之间进行自动故障转移。您也可以根据告警通知进行手动故障转移。

地址编排

云调度 GTM 使用了目标地址、地址池、地址池集合、路由规则来编排地址池。如果您的 GTM 实例使用智能路由策略,您无需关心地址池集合和路由规则,因为云调度 GTM 会自动生成路由规则。

  • 目标地址可以是一个 IPv4 地址、IPv6 地址或域名。
  • 一个或多个业务属性(例如地理位置和运营商)相同的目标地址可以被添加到同一个地址池。一个目标地址可以被添加到多个地址池。
    • 如果您的 GTM 实例使用基础路由策略:在地址池中,目标地址有权重属性,可以用于实现目标地址级别的负载均衡。
    • 如果您的 GTM 实例使用智能路由策略:对于容量优先和负载反馈路由模式,目标地址和地址池都有容量属性,可以用于实现目标地址或地址池级别的负载均衡。
  • 一个或多个地址池可以被添加到同一个地址池集合。在地址池集合内可以实现目标地址级别的故障转移。地址池集合内的地址池具备权重属性,可以实现地址池级别的负载均衡。
  • 一个路由规则可以包含一个或多个地址池集合。其中,只有一个地址池集合能作为主地址池集合,其他地址池集合只能作为备地址池集合。在路由规则内可以实现地址池集合级别的故障转移。路由规则还具备线路和权重属性。一个 GTM 实例可以包含一个或多个路由规则。

流量路由

您可以在云调度 GTM 中选择以下路由策略。云调度 GTM 按照您选择的策略把用户流量路由到您的目标地址。

  • 基础路由:基于地理位置的流量路由策略。您可以为基础路由策略开启或关闭基于权重的负载均衡功能。
  • 智能路由:基于时延、容量和负载反馈的流量路由策略。您可以把智能路由策略设置为以下任意一个路由模式。
    • 性能优先:用户向递归 DNS 服务器发送 DNS 查询请求时,云调度 GTM 会返回与用户访问延时最低的目标地址。
    • 容量优先:用户向递归 DNS 服务器发送 DNS 查询请求时,云调度 GTM 会在满足目标地址的容量限制的前提下,返回与用户访问延时最低的目标地址。
    • 负载反馈:在容量优先模式的基础上,云调度 GTM 会按照用户所反馈的当前负载值、目标负载值和容量对目标地址的流量进行动态调整。如果在您的业务场景下,目标地址的流量承载能力可能会变化,您可以选择负载反馈。

健康检查和故障转移

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

健康检查

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

图片

自动故障转移

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

  • 地址池集合内的故障转移:当某个目标地址不可用时,云调度 GTM 不再将流量路由到该目标地址。当该目标地址恢复可用后,云调度 GTM 会再次把流量路由到该地址。

    说明

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

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

图片

手动故障转移

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

图片