Class StreamsPartitionAssignor

  • All Implemented Interfaces:
    org.apache.kafka.clients.consumer.internals.PartitionAssignor, org.apache.kafka.common.Configurable

    public class StreamsPartitionAssignor
    extends java.lang.Object
    implements org.apache.kafka.clients.consumer.internals.PartitionAssignor, org.apache.kafka.common.Configurable
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  StreamsPartitionAssignor.Error  
      • Nested classes/interfaces inherited from interface org.apache.kafka.clients.consumer.internals.PartitionAssignor

        org.apache.kafka.clients.consumer.internals.PartitionAssignor.Assignment, org.apache.kafka.clients.consumer.internals.PartitionAssignor.Subscription
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method 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()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • supportedVersions

        protected final java.util.Set<java.lang.Integer> supportedVersions
      • PARTITION_COMPARATOR

        protected static final java.util.Comparator<org.apache.kafka.common.TopicPartition> PARTITION_COMPARATOR
      • usedSubscriptionMetadataVersion

        protected int usedSubscriptionMetadataVersion
    • Constructor Detail

      • StreamsPartitionAssignor

        public StreamsPartitionAssignor()
    • Method Detail

      • userEndPoint

        protected java.lang.String userEndPoint()
      • 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 interface org.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 interface org.apache.kafka.clients.consumer.internals.PartitionAssignor
      • subscription

        public org.apache.kafka.clients.consumer.internals.PartitionAssignor.Subscription subscription​(java.util.Set<java.lang.String> topics)
        Specified by:
        subscription in interface org.apache.kafka.clients.consumer.internals.PartitionAssignor
      • assign

        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)
        Specified by:
        assign in interface org.apache.kafka.clients.consumer.internals.PartitionAssignor
      • onAssignment

        public void onAssignment​(org.apache.kafka.clients.consumer.internals.PartitionAssignor.Assignment assignment)
        Specified by:
        onAssignment in interface org.apache.kafka.clients.consumer.internals.PartitionAssignor
        Throws:
        TaskAssignmentException - if there is no task id for one of the partitions specified
      • processLatestVersionAssignment

        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)