|
这个版本仍在开发中,尚未达到稳定状态。要使用最新稳定版,请使用 spring-cloud-stream 5.0.1 ! |
健康指标
Spring Cloud Stream 为绑定器提供了健康指标。
它被注册在名称 binders 下,可以通过设置 management.health.binders.enabled 属性来启用或禁用。
要启用健康检查,您首先需要通过包含其依赖项来同时启用“web”和“actuator”(参见绑定可视化和控制)
如果应用程序未显式设置management.health.binders.enabled,则management.health.defaults.enabled将匹配为true并启用绑定器健康指标。
如果要完全禁用健康指示器,则必须将management.health.binders.enabled设置为false。
您可以使用 Spring Boot 操作器健康端点来访问健康指标 - /actuator/health。
默认情况下,当您调用上述端点时,只能收到应用程序的顶层状态信息。
要接收绑定器特定健康指标的完整详细信息,需要在您的应用程序中包含属性 management.endpoint.health.show-details 并将其值设为 ALWAYS。
健康指标是绑定器特定的,某些绑定器实现可能不提供健康指标。
如果您想完全禁用所有现成可用的健康指标,并提供自己的健康指标,可以将属性management.health.binders.enabled设置为false,然后在应用程序中提供自己的HealthIndicator Bean。在这种情况下,Spring Boot的健康指标基础设施仍然会拾取这些自定义Bean。即使您没有禁用绑定器健康指标,您仍然可以通过提供自己的HealthIndicator Bean来增强健康检查,除了内置的健康检查之外。
当应用程序中有多个绑定器时,健康指标默认是启用的,除非应用程序通过将management.health.binders.enabled设置为false来关闭它们。在这种情况下,如果用户希望禁用一部分绑定器的健康检查,则应在多绑定器配置环境中的management.health.binders.enabled处设置false。有关如何提供特定于环境的属性,请参阅连接到多个系统。
如果类路径中存在多个绑定器,但应用程序并未使用其中所有绑定器,则这可能会在健康指标方面引起一些问题。
执行健康检查时可能存在特定于实现的详细信息。例如,Kafka 绑定器可能决定状态为 DOWN(如果没有目的地由该绑定器注册)。
让我们看一个具体的情况。假设你同时在类路径中拥有Kafka和Kafka Streams绑定器,但在应用程序代码中只使用了Kafka Streams绑定器,即仅使用Kafka Streams绑定器提供绑定。
由于未使用Kafka绑定器,并且它有特定检查以查看是否注册了任何目标位置,因此绑定器健康检查将会失败。
顶级应用健康检查状态将被报告为DOWN。
在这种情况下,你可以简单地从你的应用程序中删除kafka绑定器依赖,因为你没有使用它。