GroupCoordinator handles general group membership and offset management.
Case class used to represent group metadata for the ListGroups API
Case class used to represent group metadata for the DescribeGroup API
Configuration settings for in-built offset management
Configuration settings for in-built offset management
The maximum allowed metadata for any offset commit.
Batch size for reading from the offsets segments when loading offsets into the cache.
Offsets older than this retention period will be discarded.
Frequency at which to check for expired offsets.
The number of partitions for the offset commit topic (should not change after deployment).
The offsets topic segment bytes should be kept relatively small to facilitate faster log compaction and faster offset loads
The replication factor for the offset commit topic (set higher to ensure availability).
Compression codec for the offsets topic - compression should be turned on in order to achieve "atomic" commits.
The offset commit will be delayed until all replicas for the offsets topic receive the commit or this timeout is reached. (Similar to the producer request timeout.)
The required acks before the commit can be accepted. In general, the default (-1) should not be overridden.
Messages stored for the group topic has versions for both the key and value fields.
Messages stored for the group topic has versions for both the key and value fields. Key version is used to indicate the type of the message (also to differentiate different types of messages from being compacted together if they have the same field values); and value version is used to evolve the messages within their data types:
key version 0: group consumption offset -> value version 0: [offset, metadata, timestamp]
key version 1: group consumption offset -> value version 1: [offset, metadata, commit_timestamp, expire_timestamp]
key version 2: group metadata -> value version 0: [protocol_type, generation, protocol, leader, members]
GroupCoordinator handles general group membership and offset management.
Each Kafka server instantiates a coordinator which is responsible for a set of groups. Groups are assigned to coordinators based on their group names.