50.9.3 响应式的健康指示器

对于响应式应用程序,例如那些使用Spring WebFlux的应用程序,ReactiveHealthIndicator提供了一个非阻塞契约来获得应用程序的健康状态。与传统的HealthIndicator类似,健康信息收集自ApplicationContext中定义的所有ReactiveHealthIndicator bean。不检查响应式API的常规HealthIndicatorbean包含在弹性调度器中并在其上执行。

要从响应式API提供自定义健康信息,你可以注册实现ReactiveHealthIndicator接口的Spring bean。下面的代码显示了一个示例ReactiveHealthIndicator实现:

@Component
public class MyReactiveHealthIndicator implements ReactiveHealthIndicator {

    @Override
    public Mono<Health> health() {
        return doHealthCheck() //perform some specific health check that returns a Mono<Health>
            .onErrorResume(ex -> Mono.just(new Health.Builder().down(ex).build())));
    }

}

要自动处理错误,可以考虑从AbstractReactiveHealthIndicator扩展。

最后更新于