健康检查与自愈

故障不可避免,但可以让系统自己发现问题并恢复。

健康检查是系统感知自身状态的触角,自愈是系统在发现异常后自动采取的恢复动作。本模块详解 Kubernetes 健康检查机制、优雅关闭、流量预热和自动重启,帮助你构建具备自愈能力的系统。

模块结构

健康检查

文章核心问题
健康检查概述健康检查的完整体系
存活探针检测进程是否存活
就绪探针检测是否准备好接收流量
启动探针给慢启动应用更多时间
探针最佳实践探针配置避坑指南
端点设计健康检查接口设计
Spring ActuatorSpring Boot 健康检查
K8s 探针配置K8s 探针详解

自愈机制

文章核心问题
优雅关闭关闭时保护在处理请求
优雅关闭实现完整实现方案
流量预热新 Pod 如何预热
自动重启故障后自动恢复
自愈机制自愈的整体设计

健康检查分层

flowchart TD
    A["健康检查分层"] --> B["Kubernetes 层\nLiveness / Readiness / Startup"]
    A --> C["应用层\n/actuator/health"]
    A --> D["基础设施层\n进程监控"]

    B --> B1["进程是否存活"]
    C --> C1["依赖是否就绪"]
    D --> D1["资源是否充足"]

探针类型对比

探针类型目的失败时行为使用场景
Liveness进程是否存活重启容器进程崩溃
Readiness是否准备好接收流量从 Service 移除依赖未就绪
Startup是否启动完成禁用 Liveness 和 Readiness慢启动应用

自愈能力等级

flowchart TD
    A["自愈能力等级"] --> B["L1: 被动检测\n监控告警"]
    A --> C["L2: 自动重启\nK8s 自动重启"]
    A --> D["L3: 自动降级\n自动服务降级"]
    A --> E["L4: 自动修复\n自动定位并修复"]
等级能力示例
L1检测并告警Prometheus + Alertmanager
L2自动重启K8s Liveness Probe
L3自动降级Hystrix/Sentinel 降级
L4自动修复高级自愈系统

准备好开始了吗?从健康检查概述开始。