public class StreamsPartitionAssignor
extends java.lang.Object
implements org.apache.kafka.clients.consumer.internals.PartitionAssignor, org.apache.kafka.common.Configurable
Modifier and Type | Class and Description |
---|---|
static class |
StreamsPartitionAssignor.Error |
Modifier and Type | Field and Description |
---|---|
protected static java.util.Comparator<org.apache.kafka.common.TopicPartition> |
PARTITION_COMPARATOR |
protected java.util.Set<java.lang.Integer> |
supportedVersions |
protected int |
usedSubscriptionMetadataVersion |
Constructor and Description |
---|
StreamsPartitionAssignor() |
Modifier and Type | Method and Description |
---|---|
java.util.Map<java.lang.String,org.apache.kafka.clients.consumer.internals.PartitionAssignor.Assignment> |
assign(org.apache.kafka.common.Cluster metadata,
java.util.Map<java.lang.String,org.apache.kafka.clients.consumer.internals.PartitionAssignor.Subscription> subscriptions) |
void |
configure(java.util.Map<java.lang.String,?> configs)
We need to have the PartitionAssignor and its StreamThread to be mutually accessible
since the former needs later's cached metadata while sending subscriptions,
and the latter needs former's returned assignment when adding tasks.
|
java.lang.String |
name() |
void |
onAssignment(org.apache.kafka.clients.consumer.internals.PartitionAssignor.Assignment assignment) |
protected void |
processLatestVersionAssignment(AssignmentInfo info,
java.util.List<org.apache.kafka.common.TopicPartition> partitions,
java.util.Map<TaskId,java.util.Set<org.apache.kafka.common.TopicPartition>> activeTasks,
java.util.Map<org.apache.kafka.common.TopicPartition,org.apache.kafka.common.PartitionInfo> topicToPartitionInfo) |
org.apache.kafka.clients.consumer.internals.PartitionAssignor.Subscription |
subscription(java.util.Set<java.lang.String> topics) |
protected TaskManager |
taskManger() |
protected java.lang.String |
userEndPoint() |
protected final java.util.Set<java.lang.Integer> supportedVersions
protected static final java.util.Comparator<org.apache.kafka.common.TopicPartition> PARTITION_COMPARATOR
protected int usedSubscriptionMetadataVersion
protected java.lang.String userEndPoint()
protected TaskManager taskManger()
public void configure(java.util.Map<java.lang.String,?> configs)
configure
in interface org.apache.kafka.common.Configurable
org.apache.kafka.common.KafkaException
- if the stream thread is not specifiedpublic java.lang.String name()
name
in interface org.apache.kafka.clients.consumer.internals.PartitionAssignor
public org.apache.kafka.clients.consumer.internals.PartitionAssignor.Subscription subscription(java.util.Set<java.lang.String> topics)
subscription
in interface org.apache.kafka.clients.consumer.internals.PartitionAssignor
public java.util.Map<java.lang.String,org.apache.kafka.clients.consumer.internals.PartitionAssignor.Assignment> assign(org.apache.kafka.common.Cluster metadata, java.util.Map<java.lang.String,org.apache.kafka.clients.consumer.internals.PartitionAssignor.Subscription> subscriptions)
assign
in interface org.apache.kafka.clients.consumer.internals.PartitionAssignor
public void onAssignment(org.apache.kafka.clients.consumer.internals.PartitionAssignor.Assignment assignment)
onAssignment
in interface org.apache.kafka.clients.consumer.internals.PartitionAssignor
TaskAssignmentException
- if there is no task id for one of the partitions specifiedprotected void processLatestVersionAssignment(AssignmentInfo info, java.util.List<org.apache.kafka.common.TopicPartition> partitions, java.util.Map<TaskId,java.util.Set<org.apache.kafka.common.TopicPartition>> activeTasks, java.util.Map<org.apache.kafka.common.TopicPartition,org.apache.kafka.common.PartitionInfo> topicToPartitionInfo)