此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 spring-cloud-stream 4.1.4spring-doc.cn

运行状况指示器

Spring Cloud Stream 为 Binders 提供了运行状况指示器。 它在名称下注册,可以通过设置属性来启用或禁用。bindersmanagement.health.binders.enabledspring-doc.cn

要启用运行状况检查,您首先需要同时启用 “web” 和 “actuator” ,方法是包含其依赖项(请参阅绑定可视化和控制)spring-doc.cn

如果应用程序未明确设置,则匹配为 ,并启用 Binder 运行状况指示器。 如果要完全禁用运行状况指示器,则必须设置为 。management.health.binders.enabledmanagement.health.defaults.enabledtruemanagement.health.binders.enabledfalsespring-doc.cn

您可以使用 Spring Boot actuator 运行状况端点来访问运行状况指示器 - 。 默认情况下,只有当您点击上述终端节点时,您才会收到顶级应用程序状态。 为了从 Binder 特定的运行状况指示器中接收完整详细信息,您需要在应用程序中包含具有 value 的属性。/actuator/healthmanagement.endpoint.health.show-detailsALWAYSspring-doc.cn

运行状况指示器是特定于 Binder 的,某些 Binder 实现不一定提供运行状况指示器。spring-doc.cn

如果您想完全禁用所有开箱即用的运行状况指标,而是提供您自己的运行状况指标, 您可以通过将 property 设置为 然后在应用程序中提供您自己的 bean 来实现此目的。 在这种情况下,Spring Boot 中的健康指示器基础结构仍将选取这些自定义 bean。 即使您没有禁用 Binder 运行状况指示器,您仍然可以通过提供自己的 bean 来增强运行状况检查,以及开箱即用的运行状况检查。management.health.binders.enabledfalseHealthIndicatorHealthIndicatorspring-doc.cn

当同一应用程序中有多个 Binders 时,默认情况下会启用运行状况指示器,除非应用程序通过设置为 来关闭它们。 在这种情况下,如果用户想要禁用 Binders 子集的运行状况检查,则应通过在多 Binder 配置的环境中设置为 to 来完成。 有关如何提供特定于环境的属性的详细信息,请参阅连接到多个系统management.health.binders.enabledfalsemanagement.health.binders.enabledfalsespring-doc.cn

如果 Classpath 中存在多个 Binders,但并非所有 Binders 都在应用程序中使用,这可能会导致运行状况指示器的上下文中出现一些问题。 有关如何执行运行状况检查,可能存在特定于实施的详细信息。例如,Kafka Binder 可以决定状态,就好像 Binder 没有注册目标一样。DOWNspring-doc.cn

让我们举一个具体的情况。假设您在 Classpath 中同时存在 Kafka 和 Kafka Streams Binders,但仅在应用程序代码中使用 Kafka Streams Binders,即仅使用 Kafka Streams Binders 提供绑定。 由于 Kafka Binder 未使用,并且它具有特定检查以查看是否注册了任何目标,因此 Binder 运行状况检查将失败。 顶级应用程序运行状况检查状态将报告为 。 在这种情况下,您只需从应用程序中删除 kafka Binder 的依赖项,因为您没有使用它。DOWNspring-doc.cn