找出包含消耗数据的最旧的卡夫卡偏移量

时间:2018-08-15 16:36:57

标签: apache-kafka kafka-consumer-api

我今天遇到了这个数据问题,为了解决这个问题,我必须重新计算过去3个月中的所有数据。但是,在Kafka中,当我运行以下命令时:

./kafka-console-consumer.sh --bootstrap-server 10.8.95.21:9092 --topic backoffice --from-beginning

它遇到错误:The requested offset is not within the range of offsets maintained by the server

--from-beginning试图从偏移量中获取数据,这些偏移量的数据已被kafka清除。 我可以列出偏移量及其创建时间吗?因此,我可以从哪里开始使用数据进行估算。否则,如果我可以确定包含数据的最旧的卡夫卡偏移量,则可以从该偏移量开始读取。

2 个答案:

答案 0 :(得分:0)

您是否尝试过 kt fgeller/kt)。这是Kafka控制台工具的替代品,是一个了不起的工具。这是用go语言编写的,而且速度也非常快。另一个好处是,您可以在默认情况下在其中获得每条消息的偏移量。

因此,您可以简单地编写如下内容:   kt consume -brokers <broker-name> -topic <topic-name> oldest

,输出将是这样的: { "partition": 0, "offset": <oldest-offset>, "key": "<your-key>", "value": "<value of the message>" }

编辑:如果您需要一些UI,Kafdrop就是您想要的。设置起来非常容易,您可以轻松获得所有与胶印有关的信息。您甚至可以观看与偏移量相对应的消息,这真是太神奇了。

答案 1 :(得分:0)

以下 cmd 对我有用:

./bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list <broker-name> --topic <topic-name> --time -2