健康检查解决什么
健康检查周期性探测后端源站,把异常节点从转发列表中摘除,避免请求继续打向已经故障的服务器。它把「用户发现故障」变成「系统自动摘除并告警」,是缩小故障影响面的基本手段。关键在于探什么、多久探一次、失败几次算故障——这三项都要按业务容忍度来定,而不是套用默认值。
基本信息
| 探测方式 | HTTP 状态码、内容关键字匹配、端口连通性 |
|---|---|
| 关键参数 | 探测间隔、超时时间、失败与恢复阈值 |
| 探测地址 | 专用轻量健康接口,不用业务首页 |
| 联动动作 | 异常摘除、恢复回切、告警通知 |
| 日志要求 | 摘除与恢复动作均需留痕 |
| 前置配置 | 探测来源地址需在业务与安全侧白名单中 |
典型使用场景
- 多台后端服务器之间的负载均衡与故障隔离
- 灰度发布或滚动重启期间逐步摘除与恢复节点
- 应用连接池耗尽造成的假死检测
- 与告警联动,节点摘除时立即通知值班
- 与监控系统互为补充,验证源站实际可用性
检查项
检查项
1. 探测地址为轻量健康接口 # 避免重查询
2. 探测请求不带业务参数,避免污染统计 # 数据干净
3. 失败与恢复阈值与业务容忍度匹配 # 参数合理
4. 摘除与恢复均有日志与告警 # 可追溯
5. 探测来源地址在业务侧白名单中 # 防误拦探测方式对比
| 方式 | 能发现 | 局限 |
|---|---|---|
| TCP 端口探测 | 进程未监听或端口不通 | 应用假死仍判为健康 |
| HTTP 状态码 | 服务返回错误码 | 返回成功码但内容异常时不敏感 |
| 内容关键字 | 返回内容不符合预期 | 页面改版后容易误判 |
探测接口不要依赖数据库重查询或复杂逻辑,否则健康检查本身就会成为源站负载。
用首页做探测时页面改版会误判后端故障,导致节点被无谓摘除,应使用专用健康接口。