从Kafka请求两个时间戳之间的消息

时间:2017-06-23 11:04:12

标签: apache-kafka kafka-consumer-api

是否可以根据消息被摄取的时间段来消费来自Kafka的消息?

示例:我希望今天0900-1000之间的所有消息都被提取到主题(现在是1200)。

如果只有一种方法来指定开始时间,那很好 - 我的消费者可以在消息到达结束时间后停止处理。

我可以看到从给定偏移量请求消息,获取第一个可用偏移量以及最早可用偏移量的方法,但不是所有消息在给定时间之后。

1 个答案:

答案 0 :(得分:6)

您可以使用offsetsForTimes方法返回其时间戳大于或等于给定时间戳的偏移量。 有关官方文档的更多信息,请访问:

https://kafka.apache.org/0101/javadoc/org/apache/kafka/clients/consumer/KafkaConsumer.html#offsetsForTimes(java.util.Map)

获得偏移后,您可以寻求使用它并开始从那里读取。