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

Reply via email to