【问题标题】:Fetch all the messages from kafka with start and end time从 kafka 获取所有带有开始和结束时间的消息
【发布时间】:2021-01-01 08:55:26
【问题描述】:

你能帮帮我吗? 我在环境中有 Kafka 集群,我需要创建一个作业,根据开始和结束时间从 Kafka 主题的所有分区读取消息。所以,就像我想从 00:00:09:14:09:2020(SEC-MINUTES-HOURS-DAY-MONTH-YEAR) 到 00:00:10:14:09 读取来自 Kafka 主题的所有消息:2020(持续时间 1 小时)。 Python 或 Java 这两种语言中的任何一种都适用于解决方案甚至 linux 命令。

提前致谢。

【问题讨论】:

标签: apache-kafka


【解决方案1】:

Kafka 提供时间索引,其中包含相对消息偏移量(在段内)和相应消息时间(LogAppendTime 或 CreateTime 取决于 log.message.timestamp.type - 代理/主题配置)之间的映射。

Kafka 消费者 API 提供方法 offsetsForTimes 来查找给定时间戳在每个分区中的偏移量。

获得起始偏移量后,使用方法seek 设置起始偏移量并开始轮询,直到所消费消息的偏移量大于范围的结束偏移量(通过与上述相同的方式获得)。当到达范围的末尾时,执行seekToEnd

【讨论】:

  • 非常感谢您提供一些对新手很有帮助的示例 sn-ps,谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-01-25
  • 1970-01-01
  • 2020-11-09
  • 2020-02-22
  • 2016-10-16
  • 1970-01-01
  • 2021-09-06
相关资源
最近更新 更多