【问题标题】:behavior of kafka consumer poll method with one time call一次性调用的kafka消费者轮询方法的行为
【发布时间】:2019-04-02 05:35:19
【问题描述】:

假设我只调用了一次 poll() 一次超时,而不是 while(true) {...poll...}

  1. 消费者是否会一次性获取从上次提交到最新可用的所有记录?
  2. 超时参数重要吗?例如。如果timeout==0 有数百万条记录,会发生什么?

【问题讨论】:

  • 根据我的实验,投票行为有点不确定。 (1) 使用 while(true) {...poll...},每次轮询的记录数对我来说似乎是随机的 (2) 我也没有发现超时和每次轮询的记录数之间的关系。但绝对不能保证一次性获得所有可用记录请如果有人可以解释
  • 这篇文章可能有最好的解释stackoverflow.com/questions/51753883/…

标签: apache-kafka kafka-consumer-api


【解决方案1】:

根据kafka-doc,默认max.poll.records500

单次调用poll()返回的最大记录数。

因此,每次调用 poll() 时,您都可以从上次提交的 offset500 max.poll.records=500

【讨论】:

  • 它还说“默认情况下,基本上没有限制。” kafka.apache.org/0100/javadoc/index.html?org/apache/kafka/…
  • @hawkssss 无限制意味着您可以将此配置设置为任何int,但默认为500。我会更新我的答案以包括这个。希望这会有所帮助。
  • 好吧,我只是尝试了默认设置,有时它会在一次投票中获得超过 500 条记录...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-29
  • 2019-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多