【问题标题】:Add and remove Spring Boot health checks dynamically动态添加和删除 Spring Boot 健康检查
【发布时间】:2019-04-29 15:42:05
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

    自 Spring Boot 2.3 起,HealthIndicatorRegistry 已被弃用,取而代之的是 HealthContributorRegistry

    您可以使用registerContributor(String name,C contributor) 注册和unregisterContributor(String name) 删除,这与之前的API 非常相似。

    从 2.1.0 开始就可以使用了

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-06-13
        • 2017-12-04
        • 1970-01-01
        • 2020-03-15
        • 2016-01-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多