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

数据面高可用性

API7 网关数据面(DP)节点的高可用性(HA)可在个别节点故障或重启时维持 API 流量。设计负载均衡器后端的多节点部署时,请使用本指南。

本指南侧重于流量服务节点的运行时可用性。相关主题请参阅:

高可用架构​

典型的数据面高可用方案会将多个数据面节点部署到不同的物理服务器或可用区。

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

健康检查与探针​

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

状态 API 端点​

启用状态监听后,才能使用健康端点。示例使用端口 7085。/status 返回 200 确认网关进程正在运行。如果流量路由要求 DP Manager 连接可用且 worker 已同步,请使用 /status/ready。

Kubernetes 探针​

本 Kubernetes 示例使用感知同步状态的就绪检查。如果希望网关在共享控制面中断期间继续接收流量,请使用能基于缓存配置成功响应的流量检查。参阅配置就绪和存活探针。

# 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. 配置缓存:数据面节点从控制面接收配置后,会将其缓存在内存中。
  2. 流量处理:正在运行的节点可以继续使用缓存配置处理流量。如果请求需要通过控制面查找消费者或开发者,而相应结果尚未缓存,该请求仍可能失败。
  3. 自动重连:数据面节点会自动尝试重新连接控制面,直到连接恢复。重新连接后,节点会同步中断期间发生的配置变更。

多节点数据面部署​

要实现高可用,请在负载均衡器后部署多个数据面节点。

  1. 负载均衡器:将流量分配到所有健康的数据面节点。
  2. 健康检查:选择能反映节点何时应接收流量的检查。对于在中断期间从快照启动的节点,请遵循备用恢复流程。
  3. 故障转移:某个数据面节点故障时,负载均衡器会停止向该节点发送流量,将负载重新分配给其余健康节点。

后续步骤​