You need to enable JavaScript to run this app.
文档中心
API 网关

API 网关

复制全文
下载 pdf
最佳实践
API 网关结合 GTM 实现跨地域流量调度与容灾切换
复制全文
下载 pdf
API 网关结合 GTM 实现跨地域流量调度与容灾切换
如果您在同一个地域创建了 API 网关的实例,可以通过 API 网关实现负载均衡。如果您在多个地域创建了 API 网关的实例,API 网关可与火山引擎云调度(GTM)联动,结合 GTM 实现不同地域的实例之间的流量调度与容灾切换。​
场景说明​
如下图所示,假设您的业务域名为 example.com,用户分布在北京和上海两个地域。您在华北 2(北京)和华东 2(上海)各部署了一套 API 网关实例,每个实例连接该地域的后端服务集群。​
API 网关可以在相同地域下实现负载均衡,使用 GTM 帮助您处理不同地域下客户端就近接入 API 网关实例。同时,GTM 可以根据 API 网关实例的规格、API 网关实例的可用性,实现对不同地域下的实例之间的智能流量调度、容灾切换等工作。​
  • 就近接入:降低访问延时。​
  • 负载均衡:按比例分配流量或按容量限制分配流量。​
  • 容灾切换:GTM 根据 API 网关实例的可用性,当一个 API 网关实例不可用时,GTM 自动屏蔽该 API 网关实例,将流量路由到能够正常提供服务的 API 网关实例。​
说明​
更多关于火山引擎云调度(GTM)的信息,请参见 GTM 产品文档。​
​​​
操作步骤​
步骤一:通过 API 网关实现同地域流量管理​
API 网关在同一地域内将流量按路由规则分发至多个后端 Upstream,实现同地域的负载均衡和高可用。​
  1. 在华北 2(北京)和华东 2(上海)分别创建 API 网关实例 1 和 API 网关实例 2,详情请参见 创建实例。​
  1. 在不同实例中分别创建服务,详情请参见 创建服务。​
  1. 根据后端实际类型创建对应 Upstream,实现同地域下跨可用区高可用,详情请参见 Upstream 管理。​
  1. 创建路由,为多个后端服务按比例分配流量,实现网关到后端服务的负载均衡,详情请参见 创建路由。​
步骤二:通过 GTM 实现跨地域流量管理​
GTM 根据用户地理位置将请求就近调度到对应地域的 API 网关实例,并通过健康检查实现故障实例自动隔离和流量切换。​
  1. 购买 GTM 实例。购买成功后,系统会自动分配一个调度域名。​
  1. 在 实例管理 页面,单击 创建实例。​
  1. 在 创建实例 页面,选择 CNAME接入。在 域名 处输入 example.com。勾选 我已阅读并同意。然后单击 确认订单。​
说明​
如果您的 DNS 服务商是火山引擎云解析 DNS,您可直接选择 域名接入。详情请参见 创建 GTM 实例。​
  1. 配置并启用 GTM 实例。​
  1. 在 实例管理 页面,在 实例域名 列, 找到example.com。​
  1. 在对应的 操作 列,单击 配置。​
  1. 在 实例配置 页面的 基本信息 部分,路由策略类型 选择 基础路由,开启负载均衡,然后单击 下一步。​
  1. 在 实例配置 页面的 添加地址池 部分,地址类型选择 域名,然后分别在 地址池 1 输入华北 2(北京)地域 API 网关实例的服务默认域名和 地址池 2 中输入华东 2(上海)地域 API 网关实例的服务默认域名,权重 分别配置为 60 和 40,地址可用模式 均为自动模式。​
  • ​​​
  • ​​​
  1. 健康检查使用系统默认配置,勾选 启用实例调度 ,单击 提交 。​
  1. 将网站域名接入 GTM。​
  • 您需要在您的域名解析服务商处创建一条 CNAME 记录,将网站域名example.com指向 GTM 实例的调度域名。​
说明​
如果您的业务域名是通过其他厂商解析,具体域名解析入口、操作步骤,请查看服务商的产品文档或咨询售后。欢迎使用火山引擎 TrafficRoute 完成 CNAME 解析。​
  1. 在 公网域名管理 页面,添加域名 example.com。详情请参见 添加域名。​
  1. 在域名example.com的 操作 列,单击 管理。​
  1. 在 记录管理 标签页,单击 添加记录。​
  1. 在 添加记录 页面,设置 域名 主机记录为 @,设置 记录类型 为 CNAME。​
  1. 单击 添加记录值,设置 记录值 为 GTM 实例的调度域名 example.com.gtm.volcdns.com,然后单击 提交。​
  • 配置 CNAME 后,不同 DNS 服务商的 CNAME 生效的时间不同。云解析控制台新增 CNAME 记录会实时生效,修改 CNAME 记录需要等待生效时间 TTL。​
  • ​​​
结果验证​
完成上述配置,可以通过以下方式验证流量调度和负载均衡是否正常生效,本示例中华北 2(北京)地域的 API 网关实例的公网 IP 地址为 104..xxx.xxx.xxx 和华东 2(上海)地域的 API 网关实例的公网 IP 地址为 172.xxx.xxx.xxx。​
验证就近接入​
使用不同地域的终端或云服务器执行 DNS 解析,确认返回的解析结果指向对应地域的 API 网关实例。​
  • 当在北京地域的服务器上执行以下命令时。​
  • ​
    dig example.com​
    ​
  • 预期结果如下,其中 104.xxx.xxx.xxx 为华北 2(北京)地域的 API 网关实例的公网 IP 地址,表明北京用户的请求被调度到华北 2(北京) 地域。​
  • ​
    ;; ANSWER SECTION:​
    example.com. 60 IN CNAME example.com.gtm.volcdns.com.​
    example.com.gtm.volcdns.com. 60 IN A 104.xxx.xxx.xxx​
    ​
  • 当在上海地域的服务器上执行以下命令时。​
  • ​
    dig example.com​
    ​
  • 预期结果如下,其中 172.xxx.xxx.xxx 为华东 2(上海)地域的 API 网关实例的公网 IP 地址,表明上海用户的请求被调度到华东 2(上海) 地域。​
  • ​
    ;; ANSWER SECTION:​
    example.com. 60 IN CNAME example.com.gtm.volcdns.com.​
    example.com.gtm.volcdns.com. 60 IN A 172.xxx.xxx.xxx​
    ​
验证负载均衡​
GTM 的负载均衡工作在 DNS 解析层,需要绕过本地 DNS 缓存来观察流量分配效果。通过执行以下命令多次独立 DNS 查询验证解析结果是否按权重分配到不同地域。​
​
# 清除本地 DNS 缓存后发起请求​
for i in $(seq 1 10); do​
systemd-resolve --flush-caches 2>/dev/null​
curl -s -o /dev/null -w "%{remote_ip}\n" https://example.com/api/health​
sleep 5​
done​
​
预期结果如下,因为 GTM 配置了 60:40 的权重,10 次中有 6 次解析到华北 2(北京)地域的 API 网关实例的公网 IP 地址,4 次解析到华东 2(上海)地域的 API 网关实例的公网 IP 地址。实际分布允许存在波动,但整体比例应与 GTM 权重配置趋势一致。​
​
172.xxx.xxx.xxx​
104.xxx.xxx.xxx​
104.xxx.xxx.xxx​
172.xxx.xxx.xxx​
172.xxx.xxx.xxx​
104.xxx.xxx.xxx​
172.xxx.xxx.xxx​
104.xxx.xxx.xxx​
104.xxx.xxx.xxx​
104.xxx.xxx.xxx​
​
​
最近更新时间:2026.07.22 10:51:32
这个页面对您有帮助吗?
有用
有用
无用
无用