重置偏移量

当应用程序启动时,每个分配分区中的初始位置取决于两个属性startOffset1。如果 resetOffsetsfalse,则正常的 Kafka 消费者 auto.offset.reset 语义适用。 i.e.如果绑定的消费者组对该分区没有已提交偏移量,则位置为earliest7。默认情况下,显式group使用earliest,没有group的匿名绑定使用latest。这些默认值可以通过设置startOffset绑定属性来覆盖。第一次使用特定的group启动绑定时,不会产生任何已提交的偏移量(s)。除了偏移量已过期的情况外,还存在没有提交过的偏移量的条件。随着现代经纪人(自2起)。1)且默认代理属性,偏移量在最后一名成员离开组后7天过期。有关更多详细信息,请参阅offsets.retention.minutes代理属性。spring-doc.cadn.net.cn

resetOffsetstrue 时,绑定器应用与代理上没有提交偏移量时适用的类似语义,就好像此绑定从未从此主题消费过一样;即忽略任何当前已提交的偏移量。spring-doc.cadn.net.cn

以下是此用法的两个使用场景。spring-doc.cadn.net.cn

  1. 从包含键/值对的压缩主题中消费。
    resetOffsets设置为true,将startOffset设置为earliest;绑定将在所有新分配的分区上执行seekToBeginningspring-doc.cadn.net.cn

  2. 从包含事件的主题中消费,仅对在绑定运行期间发生的事件感兴趣。 将resetOffsets设置为true并将startOffset设置为latest;该绑定将在所有新分配的分区上执行seekToEndspring-doc.cadn.net.cn

<br>如果在初始分配后发生重新平衡,则仅对在此前未分配期间新分配的分区执行seek操作。

若要更精确地控制主题偏移量,请参阅重平衡监听器;当提供监听器时,不应将resetOffsets设置为true,否则会导致错误。spring-doc.cadn.net.cn