Hi,

I can't understand how the protocol upgrades (to newer version) should
work. When I send GroupJoinRequest with a list of assignment protocols
(same protocol name, different versions) always the first protocol/version
gets picked up as a member version. Even if all consumers in the group are
configured with two versions still always the first specified version will
be selected by coordinator and not the one with highest version number.

So for example:
consumer1: [ {name:strategyX, version: 0}, {name: strategyX, version: 1} ]
consumer2: [ {name:strategyX, version: 0}, {name: strategyX, version: 1} ]

Both will be assigned a version 0 in a response to leader. If I make it
this way:

consumer1: [ {name:strategyX, version: 1}, {name: strategyX, version: 0} ]
consumer2: [ {name:strategyX, version: 1}, {name: strategyX, version: 0} ]

Both will be assigned version 1.

In this case:

consumer1: [ {name:strategyX, version: 10}, {name: strategyX, version: 1} ]
consumer2: [ {name:strategyX, version: 20}, {name: strategyX, version: 1} ]

Kafka will endlessly try to rebalance the group without success because
consumer1 will have version:10 and consumer2 - version:20 in a
GroupJoinResponse.

Can anyone please explain the process of the protocol version upgrade?

Reply via email to