Hi all,

I am implementing a custom  consumers to topics/partitions assignor in Kafka. 
To this end, I am overriding the AbstractPartitionAssignor which in turn 
implements the  ConsumerPartitionAssignor interface.

As part of the custom assignor, I want to send a single (float) information 
about each partition of each topic that the consumer subscribes to.

I am aware that I can send custom data to the assignor by overriding the 
default method
ByteBuffer subscriptionUserData(Set<String> topics) .

However, the issue is that from the method signature above I can not get the 
list of partitions assigned to the underlined consumer for each of the topics 
that the consumer registers for.

On the other hand, I can see that the subscription class sent by each of the 
consumers to the group coordinator has list of the owned partitions per 
consumer.
public static final class Subscription {
    private final List<String> topics;
    private final ByteBuffer userData;
    private final List<TopicPartition> ownedPartitions;
    private Optional<String> groupInstanceId;


Any hint on how I can send custom per partition data to the group coordinator 
through the method ByteBuffer subscriptionUserData(Set<String> topics), or 
using any other way that relies only on the kafka public APIs.

Thank you.

Reply via email to