...
The target (or desired) assignment of the group. This represents the assignment that all the members will eventually converge to. It is a declarative assignment which is generated by the assignor based on the group state.
Target Assignment | ||
---|---|---|
Name | Type | Description |
Group ID | uuid | The group ID as configured by the consumer. The ID uniquely identifies the group. |
Assignment Epoch | int32 | The epoch of the assignment. It represents the epoch of the group used to generate the assignment. It will eventually match the group epoch. |
Assignment Error | int8 | The error reported by the assignor. |
Members | []Member | The assignment for each member. |
Member | ||
Name | Type | Description |
Member ID | uuid | The unique identifier of the member. |
Partitions | Partitions | The set of partitions assigned to this member. |
Metadata | bytes | The metadata assigned to this member. |
Current Assignment
The Current Assignment represents the current epoch and assignment of a member. Note that members of a given group could be at a different epoch but they will all eventually converge to the target assignment.
Current Assignment | ||
---|---|---|
Name | Type | Description |
Group ID | uuid | The group ID as configured by the consumer. The ID uniquely identifies the group. |
Member ID | uuid | The member ID of this member. |
Epoch | int32 | The current epoch of this member. The epoch is the assignment epoch of the assignment currently used by this member. This epoch is the one used to fence the member (e.g. offsets commit). |
Error | int8 | The error reported by the assignor. |
Partitions | Partitions | The current partitions used by the member. |
Metadata | bytes | The current metadata used by the member. |
Rebalance Process
The rebalance process is entirely driven by the group coordinator and revolves around three kinds of epoch: the group epoch, the assignment epoch and the member epoch. The process and the epochs are explained in the following chapters.
...
In the beginning, the new protocol will be disabled by default. We envision enabling it by default in a future major release of Kafka.
Rebalance Process
The rebalance process in the consumer is basically the opposite of the process that was described earlier in this document. The consumer will know at any point in time its current epoch and the list of partitions that it owns. There are a few cases to consider:
...