我今天遇到了这个数据问题,为了解决这个问题,我必须重新计算过去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清除。
我可以列出偏移量及其创建时间吗?因此,我可以从哪里开始使用数据进行估算。否则,如果我可以确定包含数据的最旧的卡夫卡偏移量,则可以从该偏移量开始读取。
答案 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