Class AbstractStickyAssignor
java.lang.Object
org.apache.kafka.clients.consumer.internals.AbstractPartitionAssignor
org.apache.kafka.clients.consumer.internals.AbstractStickyAssignor
- All Implemented Interfaces:
ConsumerPartitionAssignor
- Direct Known Subclasses:
CooperativeStickyAssignor,StickyAssignor
Sticky assignment implementation used by
StickyAssignor and
CooperativeStickyAssignor. Sticky assignors are rack-aware.
If racks are specified for consumers, we attempt to match consumer racks with partition replica
racks on a best-effort basis, prioritizing balanced assignment over rack alignment. Previously
owned partitions may be reassigned to improve rack locality. We use rack-aware assignment if both
consumer and partition racks are available and some partitions have replicas only on a subset of racks.-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class org.apache.kafka.clients.consumer.internals.AbstractPartitionAssignor
AbstractPartitionAssignor.MemberInfoNested classes/interfaces inherited from interface org.apache.kafka.clients.consumer.ConsumerPartitionAssignor
ConsumerPartitionAssignor.Assignment, ConsumerPartitionAssignor.GroupAssignment, ConsumerPartitionAssignor.GroupSubscription, ConsumerPartitionAssignor.RebalanceProtocol, ConsumerPartitionAssignor.Subscription -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final int -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionassign(Map<String, Integer> partitionsPerTopic, Map<String, ConsumerPartitionAssignor.Subscription> subscriptions) Perform the group assignment given the partition counts and member subscriptionsassignPartitions(Map<String, List<org.apache.kafka.common.PartitionInfo>> partitionsPerTopic, Map<String, ConsumerPartitionAssignor.Subscription> subscriptions) Default implementation of assignPartitions() that does not include racks.booleanisSticky()intprotected abstract AbstractStickyAssignor.MemberDatamemberData(ConsumerPartitionAssignor.Subscription subscription) Methods inherited from class org.apache.kafka.clients.consumer.internals.AbstractPartitionAssignor
assign, partitionInfosWithoutRacks, partitions, put, useRackAwareAssignmentMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.kafka.clients.consumer.ConsumerPartitionAssignor
name, onAssignment, subscriptionUserData, supportedProtocols, version
-
Field Details
-
DEFAULT_GENERATION
public static final int DEFAULT_GENERATION- See Also:
-
partitionsTransferringOwnership
-
-
Constructor Details
-
AbstractStickyAssignor
public AbstractStickyAssignor()
-
-
Method Details
-
memberData
protected abstract AbstractStickyAssignor.MemberData memberData(ConsumerPartitionAssignor.Subscription subscription) -
assignPartitions
public Map<String,List<org.apache.kafka.common.TopicPartition>> assignPartitions(Map<String, List<org.apache.kafka.common.PartitionInfo>> partitionsPerTopic, Map<String, ConsumerPartitionAssignor.Subscription> subscriptions) Description copied from class:AbstractPartitionAssignorDefault implementation of assignPartitions() that does not include racks. This is only included to avoid breaking any custom implementation that extends AbstractPartitionAssignor. Note that this class is internal, but to be safe, we are maintaining compatibility.- Overrides:
assignPartitionsin classAbstractPartitionAssignor
-
assign
public Map<String,List<org.apache.kafka.common.TopicPartition>> assign(Map<String, Integer> partitionsPerTopic, Map<String, ConsumerPartitionAssignor.Subscription> subscriptions) Description copied from class:AbstractPartitionAssignorPerform the group assignment given the partition counts and member subscriptions- Specified by:
assignin classAbstractPartitionAssignor- Parameters:
partitionsPerTopic- The number of partitions for each subscribed topic. Topics not in metadata will be excluded from this map.subscriptions- Map from the member id to their respective topic subscription- Returns:
- Map from each member to the list of partitions assigned to them.
-
maxGeneration
public int maxGeneration() -
isSticky
public boolean isSticky()
-