在定期执行标点方法遍历迭代器的过程中,如果发生重新平衡,下面的循环会停止还是抛出异常?或者它会自动恢复,如果会,它会用相同的分区碎片恢复吗?
KeyValue<String, House> curr;
KeyValueIterator<String, House> houseIterator = houseStore.all();
while (houseIterator.hasNext()) {
j++;
curr = houseIterator.next();
houseStore.delete(curr.key);
}
houseIterator.close();
1条答案
按热度按时间nbnkbykc1#
执行线程不会调用
KafkaConsumer#poll()
直到punctuate()
完成了。因此,线程(即,punctuate
)将继续运行。如果
punctuate()
完成前max.poll.interval.ms
通过后,它将正确地重新平衡。如果punctuate
完成时间max.poll.interval.ms
使用者将退出使用者组,并且它可能会被重新分配分区。但是,这取决于punctuate
,不会被注意到punctuate
可能还会结束。稍后,什么时候poll
则示例将通过另一个重新平衡重新加入组。但是请注意,建议配置
max.poll.interval.ms
这样,示例就不会首先从消费者组中退出。即,该值应设置为大于punctuate
.