0

问题Kafka EARLIEST和Kafka LATEST偏移重置的效率如何?

我在考虑实现二分查找找到基于时间的事件回放的起始偏移量。为了这样做,我正在考虑使用EARLIEST来查找起始偏移量和最新的查找最新的偏移量。之后,我可以实现二分查找找到我需要开始重播的偏移量。

问题

我不知道如何有效地寻求最早和最晚的是,它是如何实现的。他们只是简单地在主题目录中使用znode时间戳,并查找具有最新时间戳的文件来查看?这将是我的猜测,但我只是在那里拍摄黑暗。

预先感谢您!

回答

3

如果您使用卡夫卡0.10版本问题已经为您解决。由于卡夫卡0.10每条消息都可以包含可用于准确搜索的时间戳。 Kafka维护基于时间戳的索引,允许用户根据时间寻求抵消。

卡夫卡0.10
您可以寻求利用这种方法KafkaConsumer#offsetsForTimes

卡夫卡0.9和定时间戳来抵消前面
有一个在消息没有时间戳。您无法准确搜寻,但您至少可以在给定的时间戳之前获得大致的偏移量。那么你需要使用卡夫卡简单的API。我推荐在这篇博文中阅读更多关于这个主题的文章A Closer Look at Kafka OffsetRequest

+0

这会有很大帮助!谢谢。现在我实现了二分搜索,因为我们不在0.10.0.1,但不幸的是。当我们到达那里时,我计划使用offsetsForTimes! – Niraj

相关问题