繁体   English   中英

如何使用Java从Kafka获取最近5天的消息

[英]How to get last 5 days messages from Kafka using Java

我已将Kafka中某个主题的TTL设置为7天,我正在从Kafka获取数据并将其存储在DB中,但是从最近5天开始,我的DB服务器已关闭,现在我必须从Kafka获取最近5天的消息并进行存储在DB中注意:从过去5天开始, Kafka没问题。

首先调用consumer.partitionsFor()方法来获取主题的分区

https://kafka.apache.org/0110/javadoc/org/apache/kafka/clients/consumer/KafkaConsumer.html#partitionsFor(java.lang.String)

然后,调用Consumer.offsetsForTimes()以获取5天前成功处理最后一条消息时时间戳的每个分区的偏移量。

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

然后,调用consumer.seek()将当前的消费者偏移量定位在该时间点,然后继续调用poll()并像平常一样处理消息。

https://kafka.apache.org/0110/javadoc/org/apache/kafka/clients/consumer/KafkaConsumer.html#seek(org.apache.kafka.common.TopicPartition,%20long)

在先前的“尼斯答案”中,我将添加该调用partitionsFor方法来获取您的主题的分区,然后按照@Hans的说明进行操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM