对于最新的稳定版本,请使用 spring-cloud-stream 4.3.0spring-doc.cadn.net.cn

重置偏移量

当应用程序启动时,每个分配的分区中的初始位置取决于两个属性startOffsetresetOffsets. 如果resetOffsetsfalse,普通 Kafka 消费者auto.offset.reset语义适用。 即,如果绑定的消费者组的分区没有提交的偏移量,则位置为earliestlatest. 默认情况下,具有显式groupearliest和匿名绑定(没有group)使用latest. 可以通过将startOffsetbinding 属性。 第一次使用特定group. 不存在已提交偏移量的另一种情况是偏移量已过期。 使用现代代理(自 2.1 起)和默认代理属性,偏移量将在最后一个成员离开组后 7 天过期。 请参阅offsets.retention.minutes经纪人属性了解更多信息。spring-doc.cadn.net.cn

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

以下是可以使用此功能的两个用例。spring-doc.cadn.net.cn

  1. 从包含键/值对的压缩主题使用。 设置resetOffsetstruestartOffsetearliest;绑定将执行seekToBeginning在所有新分配的分区上。spring-doc.cadn.net.cn

  2. 从包含事件的主题使用,其中您只对此绑定运行时发生的事件感兴趣。 设置resetOffsetstruestartOffsetlatest;绑定将执行seekToEnd在所有新分配的分区上。spring-doc.cadn.net.cn

如果在初始分配之后发生重新平衡,则仅对在初始分配期间未分配的任何新分配的分区执行搜索。

有关对主题偏移量的更多控制,请参阅重新平衡监听器;当提供侦听器时,resetOffsets不应设置为true,否则会导致错误。spring-doc.cadn.net.cn