由于我是 Kafka 的新手,想知道如果我在后台调用
consumer.poll()
方法会发生什么。我假设了两种内部行为方式如下。
poll
方法时,会获取记录。poll
方法只是将记录取出。 (如果队列为空则暂且不谈)如果在这种情况下,队列的最大大小将是max.poll.records
配置。我深入研究了
Consumer
代码,并假设第二个是正确的,但不能确定。谁能帮助我理解这一点?
是的,消费者获取一批记录,构建一个内存迭代器,在调用 poll 函数后循环处理记录。
并非所有 Kafka 客户端库都从 poll 返回迭代器,而是一次返回一条记录(librdkafka),但仍然执行批量获取