From 26597db5b0c23a881badcfe5156cda7961c9736f Mon Sep 17 00:00:00 2001 From: Soby Chacko Date: Fri, 8 Sep 2023 14:51:14 -0400 Subject: [PATCH] KafkaBinderHealthIndicator Changes - Set considerDownWhenAnyPartitionHasNoLeader to true by default Resolves https://github.com/spring-cloud/spring-cloud-stream/issues/2760 --- .../kafka/common/AbstractKafkaBinderHealthIndicator.java | 4 +++- .../kafka/properties/KafkaBinderConfigurationProperties.java | 2 +- docs/src/main/asciidoc/kafka/kafka_overview.adoc | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/binders/kafka-binder/spring-cloud-stream-binder-kafka-core/src/main/java/org/springframework/cloud/stream/binder/kafka/common/AbstractKafkaBinderHealthIndicator.java b/binders/kafka-binder/spring-cloud-stream-binder-kafka-core/src/main/java/org/springframework/cloud/stream/binder/kafka/common/AbstractKafkaBinderHealthIndicator.java index e4cf87d8b..9c3490673 100644 --- a/binders/kafka-binder/spring-cloud-stream-binder-kafka-core/src/main/java/org/springframework/cloud/stream/binder/kafka/common/AbstractKafkaBinderHealthIndicator.java +++ b/binders/kafka-binder/spring-cloud-stream-binder-kafka-core/src/main/java/org/springframework/cloud/stream/binder/kafka/common/AbstractKafkaBinderHealthIndicator.java @@ -55,7 +55,9 @@ public abstract class AbstractKafkaBinderHealthIndicator extends AbstractHealthI protected Consumer metadataConsumer; - protected boolean considerDownWhenAnyPartitionHasNoLeader; + // if the binder detects that a partition for the topic + // is without a leader, mark the binder health as DOWN. + protected boolean considerDownWhenAnyPartitionHasNoLeader = true; private final ConsumerFactory consumerFactory; diff --git a/binders/kafka-binder/spring-cloud-stream-binder-kafka-core/src/main/java/org/springframework/cloud/stream/binder/kafka/properties/KafkaBinderConfigurationProperties.java b/binders/kafka-binder/spring-cloud-stream-binder-kafka-core/src/main/java/org/springframework/cloud/stream/binder/kafka/properties/KafkaBinderConfigurationProperties.java index 13beac13f..655cd1c5c 100644 --- a/binders/kafka-binder/spring-cloud-stream-binder-kafka-core/src/main/java/org/springframework/cloud/stream/binder/kafka/properties/KafkaBinderConfigurationProperties.java +++ b/binders/kafka-binder/spring-cloud-stream-binder-kafka-core/src/main/java/org/springframework/cloud/stream/binder/kafka/properties/KafkaBinderConfigurationProperties.java @@ -102,7 +102,7 @@ public class KafkaBinderConfigurationProperties { private boolean autoAddPartitions; - private boolean considerDownWhenAnyPartitionHasNoLeader; + private boolean considerDownWhenAnyPartitionHasNoLeader = true; private String requiredAcks = "1"; diff --git a/docs/src/main/asciidoc/kafka/kafka_overview.adoc b/docs/src/main/asciidoc/kafka/kafka_overview.adoc index 1810fe336..9609820a6 100644 --- a/docs/src/main/asciidoc/kafka/kafka_overview.adoc +++ b/docs/src/main/asciidoc/kafka/kafka_overview.adoc @@ -148,7 +148,7 @@ Default: none. spring.cloud.stream.kafka.binder.considerDownWhenAnyPartitionHasNoLeader:: Flag to set the binder health as `down`, when any partitions on the topic, regardless of the consumer that is receiving data from it, is found without a leader. + -Default: `false`. +Default: `true`. spring.cloud.stream.kafka.binder.certificateStoreDirectory:: When the truststore or keystore certificate location is given as a non-local file system resource (resources supported by org.springframework.core.io.Resource e.g. CLASSPATH, HTTP, etc.),