数据面高可用性
API7 网关数据面(DP) 节点的高可用性 (HA) 在单个节点发生故障或重新启动时保持 API 流量流动。当你需要在负载均衡器后面设计多节点部署时,请使用此页面。
本指南重点关注流量服务节点的运行时可用性。对于相邻的问题,请参阅:
高可用性架构
数据面的典型 HA 设置涉及跨不同物理服务器或可用性区域部署多个 DP 节点。
- 多节点部署:部署至少两个 DP 节点可确保一个节点在另一个节点发生故障时可以接管。
- 无状态运行:DP节点独立运行,不共享任何状态,简化了HA架构。
- 控制面独立:即使控制面暂时不可用,DP 节点也可以继续使用缓存的配置处理流量。
健康检查和探测
配置健康检查以监控DP节点的状态并确保只有健康的节点才能接收流量。
状态 API 端点
DP 公开可用于运行状况监控的状态 API(通常位于端口 7085)。
- URL:
http://<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) 不可用性。
- 配置缓存:当 DP 节点从 CP 接收到配置时,会将其缓存在内存中。
- 流量处理:如果 CP 不可用,DP 会继续使用缓存的配置处理传入请求。
- 自动重新连接:DP 节点将自动尝试重新连接到 CP,直到连接恢复。重新连接后,它将同步停机期间所做的任何配置更改。
多节点DP部署
为了实现HA,你应该在负载均衡器后面部署多个DP节点。
- 负载均衡器:在所有健康的 DP 节点之间分配流量。
- 健康检查:负载均衡器应使用状态 API 端点对每个 DP 节点执行定期健康检查。
- 故障转移:如果DP节点发生故障,负 载均衡器将停止向其发送流量,并将负载重新分配到剩余的健康节点。