当我尝试激活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();
}
}