Kafka Consumer.poll 的幕后

问题描述 投票:0回答:1

由于我是 Kafka 的新手,想知道如果我在后台调用

consumer.poll()
方法会发生什么。我假设了两种内部行为方式如下。

  1. 当我调用
    poll
    方法时,会获取记录。
  2. 有一种Queue,由后台线程补充记录,以及
    poll
    方法只是将记录取出。 (如果队列为空则暂且不谈)如果在这种情况下,队列的最大大小将是
    max.poll.records
    配置。

我深入研究了

Consumer
代码,并假设第二个是正确的,但不能确定。谁能帮助我理解这一点?

apache-kafka kafka-consumer-api
1个回答
0
投票

是的,消费者获取一批记录,构建一个内存迭代器,在调用 poll 函数后循环处理记录。

并非所有 Kafka 客户端库都从 poll 返回迭代器,而是一次返回一条记录(librdkafka),但仍然执行批量获取

© www.soinside.com 2019 - 2024. All rights reserved.