健康指标

Spring Cloud Stream 为绑定器提供了健康指标。 spring-doc.cadn.net.cn

spring-doc.cadn.net.cn

它被注册在名称 binders 下,可以通过设置 management.health.binders.enabled 属性来启用或禁用。 spring-doc.cadn.net.cn

spring-doc.cadn.net.cn

要启用健康检查,您首先需要通过包含其依赖项来同时启用“web”和“actuator”(参见绑定可视化和控制spring-doc.cadn.net.cn

如果应用程序未显式设置management.health.binders.enabled,则management.health.defaults.enabled将匹配为true并启用绑定器健康指标。
如果要完全禁用健康指示器,则必须将management.health.binders.enabled设置为falsespring-doc.cadn.net.cn

您可以使用 Spring Boot 操作器健康端点来访问健康指标 - /actuator/health。 默认情况下,当您调用上述端点时,只能收到应用程序的顶层状态信息。 要接收绑定器特定健康指标的完整详细信息,需要在您的应用程序中包含属性 management.endpoint.health.show-details 并将其值设为 ALWAYSspring-doc.cadn.net.cn

健康指标是绑定器特定的,某些绑定器实现可能不提供健康指标。spring-doc.cadn.net.cn

如果您想完全禁用所有现成可用的健康指标,并提供自己的健康指标,可以将属性management.health.binders.enabled设置为false,然后在应用程序中提供自己的HealthIndicator Bean。在这种情况下,Spring Boot的健康指标基础设施仍然会拾取这些自定义Bean。即使您没有禁用绑定器健康指标,您仍然可以通过提供自己的HealthIndicator Bean来增强健康检查,除了内置的健康检查之外。spring-doc.cadn.net.cn

当应用程序中有多个绑定器时,健康指标默认是启用的,除非应用程序通过将management.health.binders.enabled设置为false来关闭它们。在这种情况下,如果用户希望禁用一部分绑定器的健康检查,则应在多绑定器配置环境中的management.health.binders.enabled处设置false。有关如何提供特定于环境的属性,请参阅连接到多个系统spring-doc.cadn.net.cn

如果类路径中存在多个绑定器,但应用程序并未使用其中所有绑定器,则这可能会在健康指标方面引起一些问题。
执行健康检查时可能存在特定于实现的详细信息。例如,Kafka 绑定器可能决定状态为 DOWN(如果没有目的地由该绑定器注册)。
spring-doc.cadn.net.cn

让我们看一个具体的情况。假设你同时在类路径中拥有Kafka和Kafka Streams绑定器,但在应用程序代码中只使用了Kafka Streams绑定器,即仅使用Kafka Streams绑定器提供绑定。
由于未使用Kafka绑定器,并且它有特定检查以查看是否注册了任何目标位置,因此绑定器健康检查将会失败。
顶级应用健康检查状态将被报告为DOWN
在这种情况下,你可以简单地从你的应用程序中删除kafka绑定器依赖,因为你没有使用它。spring-doc.cadn.net.cn