KAFKA-20169: Support static membership for Kafka Streams with the streams rebalance protocol at Client Side.#22559
Open
chickenchickenlove wants to merge 1 commit into
Conversation
…eams rebalance protocol at Client Side.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds the remaining client-side support for static membership when Kafka Streams uses the streams rebalance protocol (
group.protocol=streams) introduced by KIP-1071.The change allows
group.instance.idto be used with the streams protocol, sends the proper static-member leave epoch when a static Streams member closes withDEFAULTorREMAIN_IN_GROUP, and treatsUNRELEASED_INSTANCE_IDas a known fatal heartbeat error.Some close-related changes that were part of my previous full PR #21603 are intentionally not included here because they are already covered by #21579, which introduced
CloseOptions.DEFAULTfor Kafka Streams.Changes
group.protocol=streams.UNRELEASED_INSTANCE_IDexplicitly inStreamsGroupHeartbeatRequestManager.DEFAULTandREMAIN_IN_GROUPuseLEAVE_GROUP_STATIC_MEMBER_EPOCH.LEAVE_GROUPusesLEAVE_GROUP_MEMBER_EPOCH.pollOnClosesends the static leave epoch and instance id.group.instance.idis allowed for unprefixed,consumer., andmain.consumer.configurations.