diff --git a/docs/upgrade.html b/docs/upgrade.html
index fc6a5284a85..8b53fb43d0e 100644
--- a/docs/upgrade.html
+++ b/docs/upgrade.html
@@ -26,6 +26,16 @@
and iotime-total
. Please use bufferpool-wait-time-ns-total
, io-wait-time-ns-total
,
and io-time-ns-total
instead. See KIP-773
for more details.
+
The cooperative rebalancing protocol has been the default since 2.4, but we have continued to support the
+ eager rebalancing protocol to provide users an upgrade path. This support will be dropped in a future release,
+ so any users still on the eager protocol should prepare to finish upgrading their applications to the cooperative protocol in version 3.1.
+ This only affects users who are still on a version older than 2.4, and users who have upgraded already but have not yet
+ removed the upgrade.from
config that they set when upgrading from a version below 2.4.
+ Users fitting into the latter case will simply need to unset this config when upgrading beyond 3.1,
+ while users in the former case will need to follow a slightly different upgrade path if they attempt to upgrade from 2.3 or below to a version above 3.1.
+ Those applications will need to go through a bridge release, by first upgrading to a version between 2.4 - 3.1 and setting the upgrade.from
config,
+ then removing that config and upgrading to the final version above 3.1. See KAFKA-8575
+ for more details.
diff --git a/streams/src/main/java/org/apache/kafka/streams/processor/internals/assignment/AssignorConfiguration.java b/streams/src/main/java/org/apache/kafka/streams/processor/internals/assignment/AssignorConfiguration.java
index 8e4794eaf70..a71c2fbb48f 100644
--- a/streams/src/main/java/org/apache/kafka/streams/processor/internals/assignment/AssignorConfiguration.java
+++ b/streams/src/main/java/org/apache/kafka/streams/processor/internals/assignment/AssignorConfiguration.java
@@ -105,13 +105,15 @@ public final class AssignorConfiguration {
case StreamsConfig.UPGRADE_FROM_21:
case StreamsConfig.UPGRADE_FROM_22:
case StreamsConfig.UPGRADE_FROM_23:
- log.info("Eager rebalancing enabled now for upgrade from {}.x", upgradeFrom);
+ log.info("Eager rebalancing protocol is enabled now for upgrade from {}.x", upgradeFrom);
+ log.warn("The eager rebalancing protocol is deprecated and will stop being supported in a future release." +
+ " Please be prepared to remove the 'upgrade.from' config soon.");
return RebalanceProtocol.EAGER;
default:
throw new IllegalArgumentException("Unknown configuration value for parameter 'upgrade.from': " + upgradeFrom);
}
}
- log.info("Cooperative rebalancing enabled now");
+ log.info("Cooperative rebalancing protocol is enabled now");
return RebalanceProtocol.COOPERATIVE;
}