Kafka 流应用程序在与 Kafka 连接后仅读取最新消息



我们正在使用 Kafka 流库为 Kafka 主题上的传入消息构建实时通知系统,因此当流应用程序运行时,它会实时处理主题中的所有传入消息,并在遇到某种预定义的传入消息时发送通知。

如果流媒体应用程序关闭并重新启动,我们只需要处理初始化流媒体应用程序后到达的最新消息。这是为了避免处理在流媒体应用程序未运行或关闭时未处理的旧记录。默认情况媒体应用程序开始处理自上次提交偏移量以来的旧消息。Kafka 流媒体应用程序中是否有任何设置只允许处理最近的消息?

KafkaConsumer 的 'auto.offset.reset' 默认值为 'latest' 但你想使用 KafkaStreams,默认为"最早" 参考 : https://github.com/apache/kafka/blob/trunk/streams/src/main/java/org/apache/kafka/streams/StreamsConfig.java#L634

因此 如果设置的auto.offset.reset是"最新",它将是你想要的。

你的假设是正确的。即使你的设置auto.offset.resetlatest,你的应用也已具有使用者偏移量。

因此,您必须使用带有这些选项的kafka-consumer-groups命令将偏移量重置为最新版本--reset-offsets --to-latest --execute.

检查不同的重置方案,您甚至可以从文件等重置为特定的日期时间或按时间段。

最新更新