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

执行网关健康检查探针

在生产环境中,健康检查探针对于确保 API7 企业版的稳定性和可靠性至关重要。当请求在到达 API7 网关之前通过负载均衡器 (LB) 路由时,LB 可以依靠健康检查探针(例如网关提供的状态端点)来监控其运行状态。这些探针允许 LB 确定网关实例是否健康并准备好处理传入流量。如果某个实例被认为不健康,LB 会自动将请求重新路由到健康的实例,从而防止服务中断和停机。这种机制确保了高可用性,将请求路由到无响应节点的风险降至最低,并通过保持连续的服务交付来提升整体用户体验。

本教程将引导你完成启用健康检查探针以及检查网关存活状态和就绪状态的过程。

启用健康检查探针

默认情况下,状态探针是不启用的。要启用此检查,请将以下配置添加到网关的配置文件中:

config.yaml
apisix:
status:
ip: 0.0.0.0
port: 7085

❶ 当网关部署在 Docker 中时,将监听 IP 配置为 0.0.0.0。如果未配置,则回退至 127.0.0.1。请根据你的部署进行相应调整。

❷ 将监听端口配置为 7085

一旦启用,网关将提供 /status/status/ready 端点,以供健康检查探针使用。

检查网关运行状态

/status 端点可用于验证网关是否已成功启动并正在运行。例如,你可以定期向网关发送以下请求:

curl "http://127.0.0.1:7085/status"

如果网关处于健康状态,你将收到 200 OK 响应。如果网关处于不健康状态,你将收不到任何响应,并可能观察到连接被拒绝。

检查网关处理流量的就绪状态

/status/ready 端点可用于验证网关是否已准备好代理流量。例如,你可以定期向网关发送以下请求:

curl "http://127.0.0.1:7085/status/ready"

如果网关已准备好代理流量,你将收到 200 OK 响应。如果未准备好,你将收到 503 Service Temporarily Unavailable(服务暂时不可用)响应。

就绪状态由 DP Manager 报告的数据库节点的可用性决定。如果至少有一个数据库节点可用,网关将响应 200 OK。如果没有数据库节点可用,网关将响应 503 Service Temporarily Unavailable

在 Kubernetes 中配置就绪探针

如果你使用的是 Kubernetes,则可以利用就绪探针 (readiness probe) 配置来检查网关的就绪状态。使用以下部分更新相关的清单文件:

readinessProbe:
httpGet:
path: /status/ready
port: 7085
initialDelaySeconds: 5
periodSeconds: 5

❶ 设置为网关的探针端点。

❷ 设置为网关的探针端口。

❸ 在执行第一次探测之前等待 5 秒钟。

❹ 每 5 秒钟执行一次探测。

有关更多信息,请参阅配置存活、就绪和启动探针