健康检查与自愈
故障不可避免,但可以让系统自己发现问题并恢复。
健康检查是系统感知自身状态的触角,自愈是系统在发现异常后自动采取的恢复动作。本模块详解 Kubernetes 健康检查机制、优雅关闭、流量预热和自动重启,帮助你构建具备自愈能力的系统。
模块结构
健康检查
自愈机制
健康检查分层
探针类型对比
自愈能力等级
准备好开始了吗?从健康检查概述开始。
故障不可避免,但可以让系统自己发现问题并恢复。
健康检查是系统感知自身状态的触角,自愈是系统在发现异常后自动采取的恢复动作。本模块详解 Kubernetes 健康检查机制、优雅关闭、流量预热和自动重启,帮助你构建具备自愈能力的系统。
| 文章 | 核心问题 |
|---|---|
| 健康检查概述 | 健康检查的完整体系 |
| 存活探针 | 检测进程是否存活 |
| 就绪探针 | 检测是否准备好接收流量 |
| 启动探针 | 给慢启动应用更多时间 |
| 探针最佳实践 | 探针配置避坑指南 |
| 端点设计 | 健康检查接口设计 |
| Spring Actuator | Spring Boot 健康检查 |
| K8s 探针配置 | K8s 探针详解 |
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 | 自动修复 | 高级自愈系统 |
准备好开始了吗?从健康检查概述开始。