Spring Boot 健康检查

在Spring Boot所提供的端点中,有一个名为 health 的端点,用于查看应用当前的运行状态,即应用的健康情况。检查应用的健康情况,我们简称为“健康检查”。

查看 health 信息

发送 /health 请求
8480666D-011F-42EF-9923-DFA7D73AA667.png

隐藏敏感信息

endpoints.health.sensitive=true

修改缓存时间

当我们每次发送 /health 请求时,每次获取的健康情况实际上时从缓存中读取的,缓存时间默认为 1000ms,这个时间叫做 Time To Live,简称 TTL。

endpoints.health.time-to-live=500

健康检查指标类

名称 描述
ApplicationHealthIndicator 检查应用运行状态(对应 status 部分)
DiskSpaceHealthIndicator 检查磁盘空间(对应 diskSpace 部分)
DataSourceHealthIndicator 检查数据库连接
MailHealthInidicator 检查邮件服务器
JmsHealthIndicator 检查 JMS 代理
RedisHealthIndicator 检查 Redis 服务器
MongoHealthIndicator 检查 MongoDB 数据库
CassandraHealthIndicator 检查 Cassandra 数据库
RabbitHealthIndicator 检查 RabbitMQ 服务器
SolrHealthIndicator 检查 Solr 服务器
ElaticsearchHealthIndicator 检查 Elasticsearch 集群

我们添加相关的Spring Boot插件后,即可开启对应的健康检查功能,默认情况下只有ApplicationHealthIndicator与DiskSpaceHealthIndicator是启用的。我们还可通过management.health.defaults.enabled属性来控制是否开启健康检查特性,默认为true,表示是开启的。

重现自己的健康检查器

实现 org.springframework.boot.actuate.health.HealthIndicator 接口,并覆盖 health() 方法即可。

开源监控平台

spring-boot-admin

参考来源

《轻量级微服务架构(上册)》 黄勇

validate