Kafka粘合剂的健康始终是未知的



当我尝试激活kafka粘合剂的健康指标时,如春季云流参考文献文档中所述

健康终点返回:

binders":{"status":"UNKNOWN","kafka":{"status":"UNKNOWN"}}}

我的配置包含如下记录:

 management.health.binders.enabled=true

我已经调试了BindersHealthIndicatorAutoConfiguration并注意到,binderContext中没有HealthIndicator注册。我必须将自定义HealthIndicator注册为bean还是需要哪些步骤?

它看起来像文档中的错误。默认情况下,启用了Binders健康指标。如果要禁用,则需要指定management.health.binders.enabled=false

感谢您的报告。

<dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-stream-binder-kafka</artifactId>
        <version>1.3.0.RELEASE</version>
    </dependency>

management.health.binders.enabled = trueManagement.health.kafka.enabled = true

management.endpoint.health.enabled = trueManagement.Endpoint.Health.show-details =始终

localhost:8080/actuator/health
{
"status": "UP",
"details": {
    "kafka": {
        "status": "UP"
    },
    "diskSpace": {
        "status": "UP",
        "details": {
            "total": 274622050304,
            "free": 269098790912,
            "threshold": 10485760
        }
    }
}

}

@Component

公共班级Kafkahealthendicator实施健康指导者{ 私有最终记录器log = loggerfactory.getlogger(kafkahealthindicator.class(;

private KafkaTemplate<String, String> kafka;
public KafkaHealthIndicator(KafkaTemplate<String, String> kafka) {
    this.kafka = kafka;
}
/**
 * Return an indication of health.
 *
 * @return the health for Kafka.
 */
@Override
public Health health() {
    try {
        kafka.send("kafka-health-indicator", "❥").get(100, TimeUnit.MILLISECONDS);
    } catch (InterruptedException | ExecutionException | TimeoutException e) {
        return Health.down(e).build();
    }
    return Health.up().build();
}

}

最新更新