首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用Java从Kafka获取最近5天的消息

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

Stack Overflow用户
提问于 2017-09-05 13:37:23
回答 2查看 2.7K关注 0票数 1

我在Kafka中设置了一个主题的时间间隔为7天,我正在从Kafka获取数据并将其存储在数据库中,但从过去5天我的数据库服务器宕机了,现在我必须从Kafka获取最近5天的消息并将其存储在数据库中。注:从过去5天开始,Kafka没有问题。

EN

回答 2

Stack Overflow用户

发布于 2017-09-05 14:01:53

首先调用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)

票数 8
EN

Stack Overflow用户

发布于 2017-09-05 14:05:05

在前面的很好的回答中,我将添加call partitionsFor方法来获取您的主题的分区,然后按照@Hans所说的做。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46047649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档