每次轮询之间的延迟时间是多少

时间:2018-10-04 21:03:01

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

在kafka文档中,我试图了解此属性 max.poll.interval.ms

  

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

这意味着每次轮询将在poll-time-out之前进行,默认情况下为5分钟。所以我的问题是使用者线程在两次连续的轮询之间花费了多少时间?

例如:使用者线程1

第一次民意测验->有100条记录           ->处理100条记录(耗时1分钟)           ->消费者提交的抵消额

第二次投票->具有100条记录            ->处理100条记录(耗时1分钟)            ->消费者提交的抵消额

消费者在第一次和第二次投票之间需要时间吗?如果是,为什么?以及我们该如何更改时间(当主题包含大量数据时可以假设这一点)

1 个答案:

答案 0 :(得分:1)

不清楚“间隔时间”是什么意思;如果您正在谈论spring-kafka侦听器容器,那么这就是您的意思,那么就无需等待或休眠。

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

因此,max.poll.interval.ms必须足够大,以使您的听众可以处理max.poll.records(以防万一,还有一些额外的功能)。

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