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

Raf*_*ter 6 java spring health-monitoring spring-boot spring-boot-actuator

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

我当然可以将所有工作的健康状况检查汇总到一个HealthIndicatorbean中,但我更愿意以某种方式列出所有检查的健康状况.在HealthIndicator不但是只允许返回一个Health实例.有没有办法返回这些对象的集合?

And*_*son 9

Spring Boot 2.1 为此目的引入了HealthIndicatorRegistry.每当查询健康端点时,都要求注册表提供所有已注册健康指标的快照,然后调用每个指示符以确定应用程序的健康状况.

注册表以bean的形式提供,因此可以注入到管理特定于域的任务的类中.然后它可以调用register(String, HealthIndicator)unregister(String)添加和删​​除这些任务.