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