动态添加和删除Spring Boot运行状况检查

时间:2018-11-27 20:18:38

标签: java spring spring-boot spring-boot-actuator health-monitoring

我正在开发一个基于Spring Boot的应用程序,该应用程序通过API动态添加和删除特定于域的任务。由于这些作业可能会分别失败,因此我想为每个作业运行时添加HealthIndicator,然后将其删除。 Spring Actuator的 health 端点已经集成到多个监视器中,这只会将该信息推送到下游。

我当然可以将所有作业的运行状况检查汇总到一个HealthIndicator Bean中,但是如果以某种方式列出了所有检查的运行状况,我希望这样做。 HealthIndicator确实只允许返回一个Health实例。有没有办法返回此类对象的集合?

1 个答案:

答案 0 :(得分:8)

Spring Boot 2.1为此引入了HealthIndicatorRegistry。每当查询运行状况端点时,都会要求注册表提供所有已注册运行状况指示器的快照,然后调用这些指示器中的每一个来确定应用程序的运行状况。

注册表可以作为bean使用,因此可以注入到管理特定于域的任务的类中。然后,在添加和删除这些任务时,它可以调用register(String, HealthIndicator)unregister(String)