dajac commented on code in PR #18756: URL: https://github.com/apache/kafka/pull/18756#discussion_r1936945456
########## docs/upgrade.html: ########## @@ -89,6 +89,27 @@ <h5><a id="upgrade_400_notable" href="#upgrade_400_notable">Notable changes in 4 </li> <li><b>Broker</b> <ul> + <li>The new Consumer Group Rebalance Protocol is now a production ready feature, enabled by default on the broker. Review Comment: nit: Should we add `(KIP-848)` after `Consumer Group Rebalance Protocol` and link the KIP? ########## docs/upgrade.html: ########## @@ -89,6 +89,27 @@ <h5><a id="upgrade_400_notable" href="#upgrade_400_notable">Notable changes in 4 </li> <li><b>Broker</b> <ul> + <li>The new Consumer Group Rebalance Protocol is now a production ready feature, enabled by default on the broker. + The supported group protocols are defined with the config <code>group.coordinator.rebalance.protocols=classic,consumer</code>, Review Comment: We may want to explain the `group.version` feature flag. It will be automatically set when the upgrade to 4.0 is finalized with the `kafka-features` command. Until this is done, the new protocol is not enabled. ########## docs/upgrade.html: ########## @@ -89,6 +89,27 @@ <h5><a id="upgrade_400_notable" href="#upgrade_400_notable">Notable changes in 4 </li> <li><b>Broker</b> <ul> + <li>The new Consumer Group Rebalance Protocol is now a production ready feature, enabled by default on the broker. + The supported group protocols are defined with the config <code>group.coordinator.rebalance.protocols=classic,consumer</code>, + with both protocols supported. Client applications should select the protocol to use (see Consumer section below). + <ul> + <li> + The supported partition assignment strategies are defined on the broker now, via the config <code>group.consumer.assignors</code>. + It defaults to <code>org.apache.kafka.coordinator.group.assignor.UniformAssignor</code>, so this will be the assignor used unless the consumer selects a different one (Consumer section below). + See <a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=217387038#KIP848:TheNextGenerationoftheConsumerRebalanceProtocol-AssignorSelection">Assignor selection</a> for more details. + </li> Review Comment: I wonder if we should put a bullet point about the new server side configs (session, heartbeat interval). What do you think? ########## docs/upgrade.html: ########## @@ -89,6 +89,27 @@ <h5><a id="upgrade_400_notable" href="#upgrade_400_notable">Notable changes in 4 </li> <li><b>Broker</b> <ul> + <li>The new Consumer Group Rebalance Protocol is now a production ready feature, enabled by default on the broker. + The supported group protocols are defined with the config <code>group.coordinator.rebalance.protocols=classic,consumer</code>, + with both protocols supported. Client applications should select the protocol to use (see Consumer section below). + <ul> + <li> + The supported partition assignment strategies are defined on the broker now, via the config <code>group.consumer.assignors</code>. + It defaults to <code>org.apache.kafka.coordinator.group.assignor.UniformAssignor</code>, so this will be the assignor used unless the consumer selects a different one (Consumer section below). + See <a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=217387038#KIP848:TheNextGenerationoftheConsumerRebalanceProtocol-AssignorSelection">Assignor selection</a> for more details. + </li> + <li> + Static membership behaviour changes to improve the experience and avoid conflicting members continuously affecting each other. + A static consumer trying to join a group with an instance ID that is already use will now fail with <code>org.apache.kafka.common.errors.UnreleasedInstanceIdException</code>. + The initial static consumer using the instance ID is not affected. + </li> + <li> + A new config <code>group.coordinator.threads</code> is added to control the number of threads used by the new group coordinator. + It defaults to 1, and it should be adjusted as needed. + See <a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=217387038#KIP848:TheNextGenerationoftheConsumerRebalanceProtocol-GroupCoordinator">New Group Coordinator</a> for more details. + </li> + </ul> Review Comment: I wonder wether we should bring this as its own bullet point before the one about the new rebalance protocol because this is important regardless of the new protocol. What do you think? We could perhaps explain that 4.0 ships with a new group coordinator, etc. ########## docs/upgrade.html: ########## @@ -89,6 +89,27 @@ <h5><a id="upgrade_400_notable" href="#upgrade_400_notable">Notable changes in 4 </li> <li><b>Broker</b> <ul> + <li>The new Consumer Group Rebalance Protocol is now a production ready feature, enabled by default on the broker. + The supported group protocols are defined with the config <code>group.coordinator.rebalance.protocols=classic,consumer</code>, + with both protocols supported. Client applications should select the protocol to use (see Consumer section below). + <ul> + <li> + The supported partition assignment strategies are defined on the broker now, via the config <code>group.consumer.assignors</code>. Review Comment: Should we mention the two assignors configured by default? ########## docs/upgrade.html: ########## @@ -89,6 +89,27 @@ <h5><a id="upgrade_400_notable" href="#upgrade_400_notable">Notable changes in 4 </li> <li><b>Broker</b> <ul> + <li>The new Consumer Group Rebalance Protocol is now a production ready feature, enabled by default on the broker. + The supported group protocols are defined with the config <code>group.coordinator.rebalance.protocols=classic,consumer</code>, + with both protocols supported. Client applications should select the protocol to use (see Consumer section below). + <ul> + <li> + The supported partition assignment strategies are defined on the broker now, via the config <code>group.consumer.assignors</code>. + It defaults to <code>org.apache.kafka.coordinator.group.assignor.UniformAssignor</code>, so this will be the assignor used unless the consumer selects a different one (Consumer section below). + See <a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=217387038#KIP848:TheNextGenerationoftheConsumerRebalanceProtocol-AssignorSelection">Assignor selection</a> for more details. + </li> + <li> + Static membership behaviour changes to improve the experience and avoid conflicting members continuously affecting each other. + A static consumer trying to join a group with an instance ID that is already use will now fail with <code>org.apache.kafka.common.errors.UnreleasedInstanceIdException</code>. + The initial static consumer using the instance ID is not affected. + </li> + <li> + A new config <code>group.coordinator.threads</code> is added to control the number of threads used by the new group coordinator. + It defaults to 1, and it should be adjusted as needed. + See <a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=217387038#KIP848:TheNextGenerationoftheConsumerRebalanceProtocol-GroupCoordinator">New Group Coordinator</a> for more details. + </li> + </ul> + </li> Review Comment: I wonder if we should put a few words about the downgrade path after the new protocol is enabled and used. What do you think? ########## docs/upgrade.html: ########## @@ -207,6 +228,38 @@ <h5><a id="upgrade_400_notable" href="#upgrade_400_notable">Notable changes in 4 </li> <li><b>Consumer</b> <ul> + <li>New Consumer Group Rebalance Protocol + <ul> + <li>Client support for the new Consumer Group Rebalance Protocol is now production ready. + To use it, set the new consumer config <code>group.protocol=CONSUMER</code>. + This will make the consumer benefit from the next generation of the rebalance protocol + (see <a href="https://cwiki.apache.org/confluence/display/KAFKA/KIP-848%3A+The+Next+Generation+of+the+Consumer+Rebalance+Protocol">KIP-848</a>), + and also the improved consumer threading model. + </li> + <li> + <code>group.remote.assignor</code> is introduced as an optional config, supported only if using the Consumer protocol. + It allows clients to overwrite the default assignment strategy configured on the broker. + </li> + <li>The following are not supported if using the new Consumer protocol: + <ul> + <li><code>heartbeat.interval.ms</code></li> + <li><code>session.timeout.ms</code></li> + <li><code>partition.assignment.strategy</code></li> + <li><code>enforceRebalance(String)</code> and <code>enforceRebalance()</code></li> + All continue to be supported if using the Classic protocol. + </ul> + </li> + <li> + Support for RE2J regex subscription with broker-side resolution is added to the Consumer. It can be used via the newly added subscribe functions: + <code>subscribe(SubscriptionPattern)</code> and <code>subscribe(SubscriptionPattern, ConsumerRebalanceListener)</code>. + A command line tool option has been added to validate RE2J regular expressions to be provided as <code>SubscriptionPattern</code>. See <a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=217387038#KIP848:TheNextGenerationoftheConsumerRebalanceProtocol---validate-regex">RE2J Validation Tool</a> + </li> + <li> + New metrics have been added to the Consumer when using the new rebalance protocol, mainly providing visibility over the improved threading model. See <a href="https://cwiki.apache.org/confluence/display/KAFKA/KIP-1068%3A+New+metrics+for+the+new+KafkaConsumer">New Consumer Metrics</a> + </li> + </ul> Review Comment: * Should we mention the upgrade path too? * Should we mention the limitations (e.g. client side assignors are not supported)? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: jira-unsubscr...@kafka.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org