50.9.2 编写自定义HealthIndicator
你可以注册实现HealthIndicator接口的Spring beans来提供自定义健康信息。你需要实现health()
方法,并返回一个Health
响应,该响应需要包含一个status
和其他用于展示的详情。下面的代码展示了一个HealthIndicator
实现类的例子:
注 对于给定HealthIndicator
的标识是bean name去掉HealthIndicator
后缀剩下的部分。在以上示例中,可以在my
的实体中获取健康信息。
除Spring Boot预定义的Status
类型,Health
也可以返回一个代表新的系统状态的自定义Status
。在这种情况下,你需要提供一个HealthAggregator
接口的自定义实现,或使用management.health.status.order
属性配置默认实现。
例如,假设一个新的,代码为FATAL
的Status
被用于你的一个HealthIndicator
实现中。为了配置严重性级别,你需要将以下配置添加到application属性文件中:
在回应中的HTTP状态码反映了全体的健康状况(例如,UP
映射到200,OUT_OF_SERVICE
和DOWN
映射到503)。如果使用HTTP访问health端点,你可能想要注册自定义的status。例如,你可以将FATAL
映射为503(服务不可用)。
注 如果你需要更多的控制,你可以定义你自己的HealthStatusHttpMapper
bean。
下面的表格展示了内建状态的默认状态映射:
状态 | 映射 |
DOWN | SERVICE_UNAVAILABLE (503) |
OUT_OF_SERVICE | SERVICE_UNAVAILABLE (503) |
UP | 默认无映射,所以http状态是200 |
UNKNOWN | 默认无映射,所以http状态是200 |
最后更新于