此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 spring-cloud-stream 4.1.4! |
运行状况指示器
Spring Cloud Stream 为 Binders 提供了运行状况指示器。
它在名称下注册,可以通过设置属性来启用或禁用。binders
management.health.binders.enabled
要启用运行状况检查,您首先需要同时启用 “web” 和 “actuator” ,方法是包含其依赖项(请参阅绑定可视化和控制)
如果应用程序未明确设置,则匹配为 ,并启用 Binder 运行状况指示器。
如果要完全禁用运行状况指示器,则必须设置为 。management.health.binders.enabled
management.health.defaults.enabled
true
management.health.binders.enabled
false
您可以使用 Spring Boot actuator 运行状况端点来访问运行状况指示器 - 。
默认情况下,只有当您点击上述终端节点时,您才会收到顶级应用程序状态。
为了从 Binder 特定的运行状况指示器中接收完整详细信息,您需要在应用程序中包含具有 value 的属性。/actuator/health
management.endpoint.health.show-details
ALWAYS
运行状况指示器是特定于 Binder 的,某些 Binder 实现不一定提供运行状况指示器。
如果您想完全禁用所有开箱即用的运行状况指标,而是提供您自己的运行状况指标,
您可以通过将 property 设置为 然后在应用程序中提供您自己的 bean 来实现此目的。
在这种情况下,Spring Boot 中的健康指示器基础结构仍将选取这些自定义 bean。
即使您没有禁用 Binder 运行状况指示器,您仍然可以通过提供自己的 bean 来增强运行状况检查,以及开箱即用的运行状况检查。management.health.binders.enabled
false
HealthIndicator
HealthIndicator
当同一应用程序中有多个 Binders 时,默认情况下会启用运行状况指示器,除非应用程序通过设置为 来关闭它们。
在这种情况下,如果用户想要禁用 Binders 子集的运行状况检查,则应通过在多 Binder 配置的环境中设置为 to 来完成。
有关如何提供特定于环境的属性的详细信息,请参阅连接到多个系统。management.health.binders.enabled
false
management.health.binders.enabled
false
如果 Classpath 中存在多个 Binders,但并非所有 Binders 都在应用程序中使用,这可能会导致运行状况指示器的上下文中出现一些问题。
有关如何执行运行状况检查,可能存在特定于实施的详细信息。例如,Kafka Binder 可以决定状态,就好像 Binder 没有注册目标一样。DOWN
让我们举一个具体的情况。假设您在 Classpath 中同时存在 Kafka 和 Kafka Streams Binders,但仅在应用程序代码中使用 Kafka Streams Binders,即仅使用 Kafka Streams Binders 提供绑定。
由于 Kafka Binder 未使用,并且它具有特定检查以查看是否注册了任何目标,因此 Binder 运行状况检查将失败。
顶级应用程序运行状况检查状态将报告为 。
在这种情况下,您只需从应用程序中删除 kafka Binder 的依赖项,因为您没有使用它。DOWN