|
对于最新稳定版本,请使用spring-cloud-stream 5.0.1! |
重置偏移量
当应用程序启动时,每个分配分区中的初始位置取决于两个属性startOffset和1。如果 resetOffsets 是 false,则正常的 Kafka 消费者 auto.offset.reset 语义适用。
i.e.如果绑定的消费者组对该分区没有已提交偏移量,则位置为earliest或7。默认情况下,显式group使用earliest,没有group的匿名绑定使用latest。这些默认值可以通过设置startOffset绑定属性来覆盖。第一次使用特定的group启动绑定时,不会产生任何已提交的偏移量(s)。除了偏移量已过期的情况外,还存在没有提交过的偏移量的条件。随着现代经纪人(自2起)。1)且默认代理属性,偏移量在最后一名成员离开组后7天过期。有关更多详细信息,请参阅offsets.retention.minutes代理属性。
当 resetOffsets 是 true 时,绑定器应用与代理上没有提交偏移量时适用的类似语义,就好像此绑定从未从此主题消费过一样;即忽略任何当前已提交的偏移量。
以下是此用法的两个使用场景。
-
从包含键/值对的压缩主题中消费。
将resetOffsets设置为true,将startOffset设置为earliest;绑定将在所有新分配的分区上执行seekToBeginning。 -
从包含事件的主题中消费,仅对在绑定运行期间发生的事件感兴趣。 将
resetOffsets设置为true并将startOffset设置为latest;该绑定将在所有新分配的分区上执行seekToEnd。
| <br>如果在初始分配后发生重新平衡,则仅对在此前未分配期间新分配的分区执行seek操作。 |
若要更精确地控制主题偏移量,请参阅重平衡监听器;当提供监听器时,不应将resetOffsets设置为true,否则会导致错误。