【问题标题】:What is the delay time between each poll每次轮询之间的延迟时间是多少
【发布时间】:2019-03-10 08:10:59
【问题描述】:

在 kafka 文档中,我试图理解这个属性 ma​​x.poll.interval.ms

使用消费者组管理时调用 poll() 之间的最大延迟。这为消费者在获取更多记录之前可以空闲的时间量设置了上限。如果在此超时到期之前未调用 poll(),则认为消费者失败,组将重新平衡,以便将分区重新分配给另一个成员。

这意味着每次轮询将在poll-time-out 之前发生,默认为 5 分钟。所以我的问题是消费者线程在两次连续轮询之间究竟需要多少时间?

例如:消费者线程 1

第一次投票--> 有 100 条记录 --> 处理 100 条记录(耗时 1 分钟) --> 消费者提交的偏移量

第二次投票--> 100 条记录 --> 处理 100 条记录(耗时 1 分钟) --> 消费者提交的偏移量

消费者在第一次和第二次投票之间需要时间吗?如果是,为什么?以及我们如何改变那个时间(假设主题有大量数据)

【问题讨论】:

    标签: apache-kafka kafka-consumer-api spring-kafka


    【解决方案1】:

    不清楚您所说的“花时间”是什么意思;如果您在谈论 spring-kafka 侦听器容器,则没有等待或睡眠,如果这就是您的意思。

    在提交偏移量后立即轮询消费者。

    所以,max.poll.interval.ms 必须足够大,让您的听众能够处理 max.poll.records(加上一些额外的,以防万一)。

    但是,不,轮询之间没有添加延迟,只是侦听器处理轮询结果所花费的时间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多