跳到主要内容
版本: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部署

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

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

后续步骤