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_COMPARATORprotected intusedSubscriptionMetadataVersion
-
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.GroupAssignmentassign(org.apache.kafka.common.Cluster metadata, org.apache.kafka.clients.consumer.ConsumerPartitionAssignor.GroupSubscription groupSubscription)voidconfigure(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 voidhandleRebalanceStart(java.util.Set<java.lang.String> topics)protected booleanmaybeUpdateSubscriptionVersion(int receivedAssignmentMetadataVersion, int latestCommonlySupportedVersion)java.lang.Stringname()voidonAssignment(org.apache.kafka.clients.consumer.ConsumerPartitionAssignor.Assignment assignment, org.apache.kafka.clients.consumer.ConsumerGroupMetadata metadata)java.nio.ByteBuffersubscriptionUserData(java.util.Set<java.lang.String> topics)java.util.List<org.apache.kafka.clients.consumer.ConsumerPartitionAssignor.RebalanceProtocol>supportedProtocols()protected TaskManagertaskManager()protected byteuniqueField()protected java.lang.StringuserEndPoint()
-
-
-
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:
configurein 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:
namein interfaceorg.apache.kafka.clients.consumer.ConsumerPartitionAssignor
-
supportedProtocols
public java.util.List<org.apache.kafka.clients.consumer.ConsumerPartitionAssignor.RebalanceProtocol> supportedProtocols()
- Specified by:
supportedProtocolsin interfaceorg.apache.kafka.clients.consumer.ConsumerPartitionAssignor
-
subscriptionUserData
public java.nio.ByteBuffer subscriptionUserData(java.util.Set<java.lang.String> topics)
- Specified by:
subscriptionUserDatain 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:
assignin 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:
onAssignmentin 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)
-
-