跳到主要内容
版本:3.10.x

API7 网关多可用区部署

跨多个可用区 (AZ) 部署 API7 网关可提供高可用性,并保护你的 API 服务免受整个 AZ 故障的影响。本页详细介绍了多可用区部署模式及其配置。

多可用区架构

在多可用区部署中,控制面和数据面组件分布在同一区域内的不同可用区。

  • 控制面:通常部署在单个主可用区中,但如果你的基础设施支持,可以扩展到多个可用区。
  • 数据面:部署在多个可用区(例如,AZ-a、AZ-b、AZ-c)中,以确保在一个可用区不可用时持续处理流量。
  • 负载均衡器:跨可用区负载均衡器将传入流量分发到所有可用区中的所有健康 DP 节点。

多可用区部署模式

典型的多可用区部署涉及以下组件:

  • 区域:特定地理区域(例如,us-east-1)。
  • 可用区:区域内的独立故障域(例如,us-east-1aus-east-1b)。
  • 跨AZ网络:低延迟、高带宽网络连接跨AZ的CP和DP节点。

故障域隔离

通过将 DP 节点分布在多个可用区,你可以隔离故障域。如果某个可用区发生中断(e.g.,由于电源故障或网络问题),负载均衡器将停止向该可用区中的 DP 节点发送流量,并将其重新分配到其余可用区中的健康节点。

多可用区配置

数据面节点

将相同的数据面配置部署到每个可用区中的每个节点。在 deployment.etcd.host 中的每个可用区列出一个 DP 管理器端点,以便每个 DP 节点在本地节点无法访问时可以故障转移到另一个可用区中的控制面:

config.yaml
deployment:
role: traditional
role_traditional:
config_provider: etcd
etcd:
host:
- "https://dp-manager.az-a.internal:7943"
- "https://dp-manager.az-b.internal:7943"
- "https://dp-manager.az-c.internal:7943"
prefix: /apisix
timeout: 30

每个条目必须指向 DP Manager TLS 监听器(默认端口 7943)。 DP 在启动时迭代列表,并在当前条目变得不健康时重新连接到下一个条目。有关完整支持的字段集,请参阅 数据面配置参考

负载均衡器

配置负载均衡器以执行跨可用区健康检查和负载均衡。

  • 健康检查:使用 DP 状态 API(端口 7085、端点/status/status/ready)进行运行状况监控。
  • 跨可用区负载均衡:启用跨可用区负载均衡,以在所有可用区之间均匀分配流量。

后续步骤