用途:为应用实现健康检查端点,让负载均衡器、Kubernetes 和监控系统判断应用状态。适用场景包括 Kubernetes 部署(存活/就绪探针)、负载均衡器健康检查、监控告警、零停机部署和自动扩缩容决策。
主要能力:区分三类检查。存活检查回答“进程是否存活”,失败则重启,示例 GET /health/live → 200 OK;就绪检查回答“能否处理流量”,失败则从负载均衡器移除,示例 GET /health/ready → 200 OK 或 503 Service Unavailable;详细检查返回各依赖状态,如 database、redis、stripe 的 status 与 latency。
使用方式:资料给出 TypeScript 与 Python 实现。TypeScript 侧定义 HealthCheck、HealthCheckResult、HealthStatus 接口与 HealthService 类,提供 register、checkLiveness、checkReadiness、getDetailedStatus 方法,检查带 5 秒超时,并按 critical 标记决定就绪状态;随后注册数据库、Redis、Stripe、磁盘等检查,并用 Express 路由暴露 /health/live、/health/ready、/health。Python 侧用 dataclass 与 asyncio 实现 HealthService,配合 FastAPI 路由。Kubernetes 配置示例展示 livenessProbe、readinessProbe、startupProbe 的 httpGet 路径与 initialDelaySeconds、periodSeconds、failureThreshold 参数。
最佳实践:存活与就绪分离;存活检查保持简单,不检查依赖;健康检查设置超时;标记关键依赖(数据库是,分析服务否);包含版本信息便于调试。常见错误:在存活探针中检查外部服务、健康检查无超时、把所有依赖都标为关键、健康端点要求认证、未缓存开销大的检查。
限制:资料未提供具体安装命令、收费或价格信息,也未说明支持的框架版本与平台范围。