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

数据面高可用性

API7 网关数据面(DP)的高可用性(HA)可确保单个节点发生故障或重启时,API 流量仍能正常处理。本页介绍如何在负载均衡器后部署多个数据面节点。

本指南重点介绍流量节点的运行时可用性。如需了解相关主题,请参见:

高可用性架构

数据面的典型 HA 设置涉及跨不同物理服务器或可用性区域部署多个 DP 节点。

  • 多节点部署:部署至少两个 DP 节点可确保一个节点在另一个节点发生故障时可以接管。
  • 无状态运行:DP 节点独立运行且不共享状态,从而简化 HA 架构。
  • 控制面独立:即使控制面暂时不可用,DP 节点也可以继续使用缓存的配置处理流量。

健康检查和探测

配置健康检查以监控 DP 节点状态,确保只有健康节点接收流量。

状态 API 端点

DP 公开可用于运行状况监控的状态 API(通常位于端口 7085)。

  • URLhttp://<dp-node-ip>:7085/status
  • 响应:成功响应(HTTP 200)表示 DP 状态健康,可以处理流量。

Kubernetes 探针

在 Kubernetes 环境中,使用 Readiness 和 Liveness 探针来管理 DP Pod 的生命周期。

# Kubernetes Pod 探针示例
readinessProbe:
httpGet:
path: /status/ready
port: 7085
initialDelaySeconds: 5
periodSeconds: 10
livenessProbe:
httpGet:
path: /status
port: 7085
initialDelaySeconds: 15
periodSeconds: 20

对控制面故障的恢复能力

API7 网关数据面节点能够在控制面(CP)不可用时继续运行。

  1. 配置缓存:当 DP 节点从 CP 接收到配置时,会将其缓存在内存中。
  2. 流量处理:如果 CP 不可用,DP 会继续使用缓存的配置处理传入请求。
  3. 自动重新连接:DP 节点会持续尝试重新连接到 CP。连接恢复后,DP 会同步中断期间发生的配置变更。

多节点 DP 部署

为实现 HA,应在负载均衡器后部署多个 DP 节点。

  1. 负载均衡器:在所有健康的 DP 节点之间分配流量。
  2. 健康检查:负载均衡器应使用状态 API 端点对每个 DP 节点执行定期健康检查。
  3. 故障转移:如果 DP 节点发生故障,负载均衡器会停止向该节点发送流量,并将流量重新分配到其余健康节点。

后续步骤