Class StreamsPartitionAssignor
- java.lang.Object
-
- org.apache.kafka.streams.processor.internals.StreamsPartitionAssignor
-
- All Implemented Interfaces:
org.apache.kafka.clients.consumer.ConsumerPartitionAssignor
,org.apache.kafka.common.Configurable
public class StreamsPartitionAssignor extends java.lang.Object implements org.apache.kafka.clients.consumer.ConsumerPartitionAssignor, org.apache.kafka.common.Configurable
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.kafka.clients.consumer.ConsumerPartitionAssignor
org.apache.kafka.clients.consumer.ConsumerPartitionAssignor.Assignment, org.apache.kafka.clients.consumer.ConsumerPartitionAssignor.GroupAssignment, org.apache.kafka.clients.consumer.ConsumerPartitionAssignor.GroupSubscription, org.apache.kafka.clients.consumer.ConsumerPartitionAssignor.RebalanceProtocol, org.apache.kafka.clients.consumer.ConsumerPartitionAssignor.Subscription
-
-
Field Summary
Fields Modifier and Type Field Description protected static java.util.Comparator<org.apache.kafka.common.TopicPartition>
PARTITION_COMPARATOR
protected int
usedSubscriptionMetadataVersion
-
Constructor Summary
Constructors Constructor Description StreamsPartitionAssignor()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description org.apache.kafka.clients.consumer.ConsumerPartitionAssignor.GroupAssignment
assign(org.apache.kafka.common.Cluster metadata, org.apache.kafka.clients.consumer.ConsumerPartitionAssignor.GroupSubscription groupSubscription)
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.protected static java.util.Map<TaskId,java.util.Set<org.apache.kafka.common.TopicPartition>>
getActiveTasks(java.util.List<org.apache.kafka.common.TopicPartition> partitions, AssignmentInfo info)
protected void
handleRebalanceStart(java.util.Set<java.lang.String> topics)
protected boolean
maybeUpdateSubscriptionVersion(int receivedAssignmentMetadataVersion, int latestCommonlySupportedVersion)
java.lang.String
name()
void
onAssignment(org.apache.kafka.clients.consumer.ConsumerPartitionAssignor.Assignment assignment, org.apache.kafka.clients.consumer.ConsumerGroupMetadata metadata)
java.nio.ByteBuffer
subscriptionUserData(java.util.Set<java.lang.String> topics)
java.util.List<org.apache.kafka.clients.consumer.ConsumerPartitionAssignor.RebalanceProtocol>
supportedProtocols()
protected TaskManager
taskManager()
protected byte
uniqueField()
protected java.lang.String
userEndPoint()
-
-
-
Method Detail
-
configure
public 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.- Specified by:
configure
in interfaceorg.apache.kafka.common.Configurable
- Throws:
org.apache.kafka.common.KafkaException
- if the stream thread is not specified
-
name
public java.lang.String name()
- Specified by:
name
in interfaceorg.apache.kafka.clients.consumer.ConsumerPartitionAssignor
-
supportedProtocols
public java.util.List<org.apache.kafka.clients.consumer.ConsumerPartitionAssignor.RebalanceProtocol> supportedProtocols()
- Specified by:
supportedProtocols
in interfaceorg.apache.kafka.clients.consumer.ConsumerPartitionAssignor
-
subscriptionUserData
public java.nio.ByteBuffer subscriptionUserData(java.util.Set<java.lang.String> topics)
- Specified by:
subscriptionUserData
in interfaceorg.apache.kafka.clients.consumer.ConsumerPartitionAssignor
-
assign
public org.apache.kafka.clients.consumer.ConsumerPartitionAssignor.GroupAssignment assign(org.apache.kafka.common.Cluster metadata, org.apache.kafka.clients.consumer.ConsumerPartitionAssignor.GroupSubscription groupSubscription)
- Specified by:
assign
in interfaceorg.apache.kafka.clients.consumer.ConsumerPartitionAssignor
-
maybeUpdateSubscriptionVersion
protected boolean maybeUpdateSubscriptionVersion(int receivedAssignmentMetadataVersion, int latestCommonlySupportedVersion)
-
onAssignment
public void onAssignment(org.apache.kafka.clients.consumer.ConsumerPartitionAssignor.Assignment assignment, org.apache.kafka.clients.consumer.ConsumerGroupMetadata metadata)
- Specified by:
onAssignment
in interfaceorg.apache.kafka.clients.consumer.ConsumerPartitionAssignor
- Throws:
TaskAssignmentException
- if there is no task id for one of the partitions specified
-
getActiveTasks
protected static java.util.Map<TaskId,java.util.Set<org.apache.kafka.common.TopicPartition>> getActiveTasks(java.util.List<org.apache.kafka.common.TopicPartition> partitions, AssignmentInfo info)
-
userEndPoint
protected java.lang.String userEndPoint()
-
taskManager
protected TaskManager taskManager()
-
uniqueField
protected byte uniqueField()
-
handleRebalanceStart
protected void handleRebalanceStart(java.util.Set<java.lang.String> topics)
-
-