Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

In the current architecture, during each rebalance consumer group on broker side will assign new member id with a UUID randomly generated each time. So through restarts, the consumer uses different member ids, which means the rejoin of same consumer will always be treated as "new member". On the client side, consumer will send a JoinGroupRequest with a special UNKNOWN_MEMBER id, which also has no intention to be treated as an existing member.  To make the KIP work, we need to change both client side and server side.

Proposed Changes

On client side, we add a new config called MEMBER_ID in ConsumerConfig. On consumer service init, if the MEMBER_ID config is not set, we shall use the 

def generateMemberIdSuffix = UUID.randomUUID().toString

Compatibility, Deprecation, and Migration Plan

...