Versions Compared

Key

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

...

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 

...

set, we will it in the initial join group request; otherwise, we will still send unknown member id. We will also increase the join group request version to v3. 

On server side, broker will keep handling existing the same join group request as before. If the protocol version is upgraded to v3, the broker will no longer use the client id plus random generated member id suffix as the member id. Instead, server will use the member id specified in the join group request v3. The change will be applied in addMemberAndRebalance.

However, it is user's responsibility to assign unique member id for each consumers. This could be in service discovery hostname, unique IP address, etc. The downside is that if user configured the member id wrongly, there could be multiple consumers with the same member id, which invalidates the consumption balance and triggers unpredictable buggy behaviors. We could think of a way to detect this.

Compatibility, Deprecation, and Migration Plan

...