我们正在使用Kafka Streaming库为Kafka主题上的传入消息构建实时通知类系统,因此当流应用程序正在运行时,它会实时处理主题中的所有传入消息,并在遇到时发送通知某种预先定义的传入消息。
如果流媒体应用程序关闭并再次启动,我们只需要处理初始化流应用程序后到达的最近消息。这是为了避免处理流式应用未运行或关闭时未处理的旧记录。默认情况下,流式应用程序自上次提交的偏移量开始处理旧消息Kafka Streaming App中是否有任何设置允许仅处理最新消息?
答案 0 :(得分:1)
KafkaConsumer' auto.offset.reset'默认值是“最新”' 但你想使用KafkaStreams,默认是最早的' 参考:https://github.com/apache/kafka/blob/trunk/streams/src/main/java/org/apache/kafka/streams/StreamsConfig.java#L634
因此, 如果设置auto.offset.reset是最新的'这将是你想要的。
答案 1 :(得分:0)
您的假设是正确的。即使您将auto.offset.reset
设置为latest
,您的应用程序也已经具有使用方偏移量。
因此,您必须使用带有这些选项kafka-consumer-groups
的{{1}}命令将偏移量重置为最新。
检查不同的重置方案,甚至可以从文件等中重置为特定的日期时间或按时间段。