kafka消费者自动提交如何工作?
我正在读这个:
自动提交 提交偏移的最简单方法是允许使用者为您执行此操作。如果配置 enable.auto.commit=true,则使用者将每五秒提交一次客户端从 poll() 接收到的最大偏移量。五秒间隔是默认设置,可通过设置 auto.commit.interval.ms 进行控制。就像消费者中的其他所有内容一样,自动提交由轮询循环驱动。每当您轮询时,使用者都会检查是否是时候提交,如果是,它将提交在上次轮询中返回的偏移量。
也许问题是我的英语不好,但我不完全理解这个描述。
假设我使用默认间隔的自动提交 - 5秒,每7秒进行一次轮询。在这种情况下,每5秒或每7秒发生一次提交?
你能澄清一下是否每3秒进行一次民意调查的行为吗?提交会每 5 秒或每 6 秒发生一次吗?
我读过这个:
自动提交:可以将 auto.commit 设置为 true,并使用以毫秒为单位的值设置 auto.commit.interval.ms 属性。启用此功能后,Kafka 使用者将提交为响应其 poll() 调用而收到的最后一条消息的偏移量。poll() 调用在设置 auto.commit.interval.ms 在后台发出。
这与答案相矛盾。
你能详细解释一下这些东西吗?
假设我有这样的图表:
0 秒 - 轮询
4 秒 - 轮询
8 秒 - 轮询
何时提交抵消,何时提交?