-
Notifications
You must be signed in to change notification settings - Fork 15.4k
KAFKA-6054: Fix upgrade path from Kafka Streams v0.10.0 #4761
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -64,6 +64,12 @@ <h4><a id="upgrade_11_0_0" href="#upgrade_11_0_0">Upgrading from 0.8.x, 0.9.x, 0 | |
| before you switch to 0.11.0.</li> | ||
| </ol> | ||
|
|
||
| <h5><a id="upgrade_1103_notable" href="#upgrade_1103_notable">Notable changes in 0.11.0.3</a></h5> | ||
| <ul> | ||
| <li> New Kafka Streams configuration parameter <code>upgrade.from</code> added that allows rolling bounce upgrade from version 0.10.0.x </li> | ||
| <li> See the <a href="/{{version}}/documentation/streams/upgrade-guide.html"><b>Kafka Streams upgrade guide</b></a> for details about this new config. | ||
| </ul> | ||
|
|
||
| <h5><a id="upgrade_1100_notable" href="#upgrade_1100_notable">Notable changes in 0.11.0.0</a></h5> | ||
| <ul> | ||
| <li>Unclean leader election is now disabled by default. The new default favors durability over availability. Users who wish to | ||
|
|
@@ -214,14 +220,41 @@ <h5><a id="upgrade_1020_streams" href="#upgrade_1020_streams">Upgrading a 0.10.1 | |
| <li> See <a href="/{{version}}/documentation/streams#streams_api_changes_0102">Streams API changes in 0.10.2</a> for more details. </li> | ||
| </ul> | ||
|
|
||
| <h5><a id="upgrade_1020_streams_from_0100" href="#upgrade_1020_streams_from_0100">Upgrading a 0.10.0 Kafka Streams Application</a></h5> | ||
| <ul> | ||
| <li> Upgrading your Streams application from 0.10.0 to 0.10.2 does require a <a href="#upgrade_10_1">broker upgrade</a> because a Kafka Streams 0.10.2 application can only connect to 0.10.2 or 0.10.1 brokers. </li> | ||
| <li> There are couple of API changes, that are not backward compatible (cf. <a href="/{{version}}/documentation/streams#streams_api_changes_0102">Streams API changes in 0.10.2</a> for more details). | ||
| Thus, you need to update and recompile your code. Just swapping the Kafka Streams library jar file will not work and will break your application. </li> | ||
| <li> Upgrading from 0.10.0.x to 0.10.2.2 requires two rolling bounces with config <code>upgrade.from="0.10.0"</code> set for first upgrade phase | ||
| (cf. <a href="https://cwiki.apache.org/confluence/display/KAFKA/KIP-268%3A+Simplify+Kafka+Streams+Rebalance+Metadata+Upgrade">KIP-268</a>). | ||
| As an alternative, an offline upgrade is also possible. | ||
| <ul> | ||
| <li> prepare your application instances for a rolling bounce and make sure that config <code>upgrade.from</code> is set to <code>"0.10.0"</code> for new version 0.10.2.2 </li> | ||
| <li> bounce each instance of your application once </li> | ||
| <li> prepare your newly deployed 0.10.2.2 application instances for a second round of rolling bounces; make sure to remove the value for config <code>upgrade.mode</code> </li> | ||
| <li> bounce each instance of your application once more to complete the upgrade </li> | ||
| </ul> | ||
| </li> | ||
| <li> Upgrading from 0.10.0.x to 0.10.2.0 or 0.10.2.1 requires an offline upgrade (rolling bounce upgrade is not supported) | ||
| <ul> | ||
| <li> stop all old (0.10.0.x) application instances </li> | ||
| <li> update your code and swap old code and jar file with new code and new jar file </li> | ||
| <li> restart all new (0.10.2.0 or 0.10.2.1) application instances </li> | ||
| </ul> | ||
| </li> | ||
| </ul> | ||
|
|
||
| <h5><a id="upgrade_10202_notable" href="#upgrade_10202_notable">Notable changes in 0.10.2.2</a></h5> | ||
| <ul> | ||
| <li> New configuration parameter <code>upgrade.from</code> added that allows rolling bounce upgrade from version 0.10.0.x </li> | ||
| </ul> | ||
|
|
||
| <h5><a id="upgrade_10201_notable" href="#upgrade_10201_notable">Notable changes in 0.10.2.1</a></h5> | ||
| <ul> | ||
| <li> The default values for two configurations of the StreamsConfig class were changed to improve the resiliency of Kafka Streams applications. The internal Kafka Streams producer <code>retries</code> default value was changed from 0 to 10. The internal Kafka Streams consumer <code>max.poll.interval.ms</code> default value was changed from 300000 to <code>Integer.MAX_VALUE</code>. | ||
| </li> | ||
| </ul> | ||
|
|
||
|
|
||
|
|
||
| <h5><a id="upgrade_1020_notable" href="#upgrade_1020_notable">Notable changes in 0.10.2.0</a></h5> | ||
| <ul> | ||
| <li>The Java clients (producer and consumer) have acquired the ability to communicate with older brokers. Version 0.10.2 clients | ||
|
|
@@ -294,6 +327,23 @@ <h5><a id="upgrade_1010_streams" href="#upgrade_1010_streams">Upgrading a 0.10.0 | |
| <li> Upgrading your Streams application from 0.10.0 to 0.10.1 does require a <a href="#upgrade_10_1">broker upgrade</a> because a Kafka Streams 0.10.1 application can only connect to 0.10.1 brokers. </li> | ||
| <li> There are couple of API changes, that are not backward compatible (cf. <a href="/{{version}}/documentation/streams#streams_api_changes_0101">Streams API changes in 0.10.1</a> for more details). | ||
| Thus, you need to update and recompile your code. Just swapping the Kafka Streams library jar file will not work and will break your application. </li> | ||
| <li> Upgrading from 0.10.0.x to 0.10.1.2 requires two rolling bounces with config <code>upgrade.from="0.10.0"</code> set for first upgrade phase | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Strictly speaking we cannot yet talk about 0.10.1.2 in 0.11.0.3 yet since we may not release 0.10.1.2 before releasing 0.11.0.3. I think it may not be of a big issue still leaving this here, but just try to point it out.
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. You are right -- not sure how to resolve this... Maybe we can only fix this manually when an older bug fix release is done... It's a little annoying :( |
||
| (cf. <a href="https://cwiki.apache.org/confluence/display/KAFKA/KIP-268%3A+Simplify+Kafka+Streams+Rebalance+Metadata+Upgrade">KIP-268</a>). | ||
| As an alternative, an offline upgrade is also possible. | ||
| <ul> | ||
| <li> prepare your application instances for a rolling bounce and make sure that config <code>upgrade.from</code> is set to <code>"0.10.0"</code> for new version 0.10.1.2 </li> | ||
| <li> bounce each instance of your application once </li> | ||
| <li> prepare your newly deployed 0.10.1.2 application instances for a second round of rolling bounces; make sure to remove the value for config <code>upgrade.mode</code> </li> | ||
| <li> bounce each instance of your application once more to complete the upgrade </li> | ||
| </ul> | ||
| </li> | ||
| <li> Upgrading from 0.10.0.x to 0.10.1.0 or 0.10.1.1 requires an offline upgrade (rolling bounce upgrade is not supported) | ||
| <ul> | ||
| <li> stop all old (0.10.0.x) application instances </li> | ||
| <li> update your code and swap old code and jar file with new code and new jar file </li> | ||
| <li> restart all new (0.10.1.0 or 0.10.1.1) application instances </li> | ||
| </ul> | ||
| </li> | ||
| </ul> | ||
|
|
||
| <h5><a id="upgrade_1010_notable" href="#upgrade_1010_notable">Notable changes in 0.10.1.0</a></h5> | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could we just ref-link the
streams/upgrade-guide.htmlhere than copying the content again in the main upgrade section?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can. It's "break" the established pattern though. Up to now, those older sections are just the unchanged release notes from the version before -- I just followed the structure of the existing docs. Let me know what you think. Also, I am wondering, it this changes anyway if we rework the web page from scratch as anticipated.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sounds good. We can leave it as is then.