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

运行状况指示器

Spring Cloud Stream 为 Binders 提供了运行状况指示器。 它以binders,并且可以通过设置management.health.binders.enabled财产。spring-doc.cadn.net.cn

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

如果management.health.binders.enabled未由应用程序显式设置,则management.health.defaults.enabled匹配为true并且 Binder Health Indicators 已启用。 如果要完全禁用运行状况指示器,则必须设置management.health.binders.enabledfalse.spring-doc.cadn.net.cn

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

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

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

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

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

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