问题描述
如果我设置了自己的重新平衡监听器,并且在onPartitionsAssigned
内调用consumer.pause(partitions)
,将当前调用到poll
,并在其中调用重新平衡监听器,并返回所有记录?
我会在文档中哪里寻找自己的答案?
编辑:
我确实在文档中看到了这一点-
暂停从请求的分区中提取。将来对poll(long)的调用将不会从这些分区中返回任何记录,除非已使用resume(Collection)恢复了它们。请注意,此方法不会影响分区订阅。特别是,使用自动分配时,它不会导致组重新平衡。
但是我不认为这可以明确说明当前正在进行的poll
调用是否会返回我在poll
内部调用的重新平衡回调中暂停的分区的数据。
解决方法
不确定我是否能向您提问。但是从规范上说,它是干净的pause()
影响未来轮询的调用。
暂停从请求的分区中提取。将来对poll(long)的调用将不会从这些分区中返回任何记录,除非已使用resume(Collection)恢复了它们。请注意,此方法不会影响分区订阅。特别是,使用自动分配时,它不会导致组重新平衡。