Interface PartitionGrouper
-
- All Known Implementing Classes:
DefaultPartitionGrouper
public interface PartitionGrouper
A partition grouper that generates partition groups given the list of topic-partitions. This grouper also acts as the stream task creation function along with partition distribution such that each generated partition group is assigned with a distinctTaskId
; the created task ids will then be assigned to Kafka Streams instances that host the stream processing application.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description java.util.Map<TaskId,java.util.Set<org.apache.kafka.common.TopicPartition>>
partitionGroups(java.util.Map<java.lang.Integer,java.util.Set<java.lang.String>> topicGroups, org.apache.kafka.common.Cluster metadata)
Returns a map of task ids to groups of partitions.
-
-
-
Method Detail
-
partitionGroups
java.util.Map<TaskId,java.util.Set<org.apache.kafka.common.TopicPartition>> partitionGroups(java.util.Map<java.lang.Integer,java.util.Set<java.lang.String>> topicGroups, org.apache.kafka.common.Cluster metadata)
Returns a map of task ids to groups of partitions. A partition group forms a task, thus, partitions that are expected to be processed together must be in the same group. Note that the grouping of partitions need to be sticky such that for a given partition, its assigned task should always be the same regardless of the input parameters to this function. This is to ensure task's local state stores remain valid through workload rebalances among Kafka Streams instances. The default partition grouper implements this interface by assigning all partitions across different topics with the same partition id into the same task. SeeDefaultPartitionGrouper
for more information.- Parameters:
topicGroups
- The map from the topic group id to topicsmetadata
- Metadata of the consuming cluster- Returns:
- a map of task ids to groups of partitions
-
-