Java Kafka使用者:onPartitionsRevoked和onPartitionsAssigned回调能否在一个poll()调用内执行?

Java Kafka使用者:onPartitionsRevoked和onPartitionsAssigned回调能否在一个poll()调用内执行?,java,apache-kafka,kafka-consumer-api,Java,Apache Kafka,Kafka Consumer Api,我使用的是kafka消费者api 0.10.2.1 KafkanConsumer为分区分配和撤销提供回调: consumer.subscribe(topics, consumerRebalanceListener); 其中,ConsumerBalanceListener有两种方法: public void onPartitionsRevoked(Collection<TopicPartition> partitions); public void onPartitionsAssig

我使用的是kafka消费者api 0.10.2.1

KafkanConsumer为分区分配和撤销提供回调:

consumer.subscribe(topics, consumerRebalanceListener);
其中,
ConsumerBalanceListener
有两种方法:

public void onPartitionsRevoked(Collection<TopicPartition> partitions);
public void onPartitionsAssigned(Collection<TopicPartition> partitions);
partitionsrevoked上的公共void(集合分区);
已签名的分区上的公共void(集合分区);
由于Kafka consumer中的所有内容都发生在单线程和内部poll()方法中,因此这些回调是从内部
poll()
方法调用的。
问题是,它们可以从一个
poll()
调用调用,还是总是需要两个独立的
poll()
调用?

在我看来,它们是从
poll()调用的。当使用者实例开始加入组时,首先调用
onPartitionsRevoked
以撤销分配给该实例的所有分区,并发送JoinGroup请求。然后它无限期地阻塞,直到收到响应为止。若它成功加入组,它将通过调用
onPartitionsAssigned
来执行用户的回调。所有这些都是在一轮
投票中完成的

谢谢,我想这是您以前看到的预期行为,或者您从代码中了解到的。是否在某处也有记录?