1. 为什么每个SpringBoot项目都需要健康检查
去年我们团队经历过一次严重的线上事故——凌晨三点服务突然崩溃,直到早上用户投诉才发现问题。事后复盘发现,如果当时有完善的健康检查机制,完全可以提前30分钟触发告警,把影响降到最低。这件事让我深刻意识到:健康检查不是可选项,而是保障系统稳定性的生命线。
SpringBoot Actuator提供的健康检查功能就像给系统装上了心电图监测仪。它能实时反映应用的健康状态,包括:
- 数据库连接是否正常
- 磁盘空间是否充足
- 第三方服务是否可达
- 自定义业务指标是否达标
这些指标通过HTTP端点暴露,可以被Prometheus、Zabbix等监控系统采集。当某个指标异常时,能立即触发告警通知值班人员,也能配合Kubernetes等平台实现自动重启或流量切换。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 健康检查核心组件详解
2.1 Actuator基础配置
在pom.xml中添加依赖是最基础的一步,但有几个关键细节需要注意:
xml复制<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
<!-- 必须指定版本号与SpringBoot主版本一致 -->
<version>${spring-boot.version}</version>
</dependency>
在application.yml中建议这样配置端点暴露规则:
yaml复制management:
endpoints:
web:
exposure:
include: health,info,metrics # 按需开放端点
base-path: /internal # 修改默认路径增加安全性
endpoint:
health:
show-details: when_authorized # 避免敏感信息泄露
probes:
enabled: true # 启用K8s就绪/存活探针
警告:永远不要在生产环境开放shutd
