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

时间:2018-05-10 07:36:05

标签: apache-kafka streaming

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

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

2 个答案:

答案 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}}命令将偏移量重置为最新。

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