我正在开发一个基于Spring Boot的应用程序,通过API动态添加和删除特定于域的任务。由于这些工作可能单独失败,我想在每个工作正在运行时添加HealthIndicator
s,然后将其删除。 Spring Actuator的健康端点已经集成到多个监视器中,这只会将这些信息推向下游。
我当然可以将所有工作的健康检查汇总到一个HealthIndicator
bean中,但我更愿意,如果以某种方式列出所有检查的健康状况。然而,HealthIndicator
只允许返回单个Health
实例。有没有办法返回这些对象的集合?
Spring Boot 2.1为此目的引入了HealthIndicatorRegistry。每当查询健康端点时,都要求注册表提供所有已注册健康指标的快照,然后调用每个指示符以确定应用程序的健康状况。
注册表以bean的形式提供,因此可以注入到管理特定于域的任务的类中。然后它可以调用register(String, HealthIndicator)
和unregister(String)
,因为这些任务被添加和删除。