Kafka GetOffsetShell时间戳似乎不起作用

时间:2018-08-20 15:27:24

标签: apache-kafka

我想从一个特定的时间开始,使用kafka-console-consumer并向其传递一个与该时间相对应的--offset,以介绍一个Kafka主题。为了找出要指定的偏移量,我尝试使用以下命令:

kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list ... --topic data.live --time 1533827402000

但我得到的只是:

data.live:8:
data.live:2:
data.live:5:
data.live:4:
...

(即无偏移)。如果我将--time指定为-2(“最早的”)或-1(“最新的”),则该命令可以正常工作,并返回如下结果:

data.live:8:765349205
data.live:2:766537956
data.live:5:759575128
data.live:4:761703674
...

(我假设第二个冒号后面的数字是偏移量)。

我的问题是:如何在中间时间内获得补偿?我尝试使用毫秒时间戳记,我认为该时间戳记应包含一些数据。


还有第二个问题:使用--time的偏移量为-1和-2,我估计是一个中间偏移量,然后将其传递给

 kafka-console-consumer.sh --bootstrap-server ... --topic data.live --offset 77000000 --partition 1

但是--offset似乎对我返回的内容没有任何影响(我的主题值包含表明这一点的人类可读时间戳)。

2 个答案:

答案 0 :(得分:0)

当我在Mac上运行date时,这就是我得到的

$ date -r 1533827402000
Fri Jan 20 17:13:20 CST 50575

我认为它不打印偏移量,因为它们还不存在

尝试--time 1533827402(对于同一命令,在2018中有一年的时间)

您还可以进行kafka-console-consumer ... --property print.timestamp=true,然后将grep移出您感兴趣的前几位,然后将这些值用作GetOffsetShell

的示例。

答案 1 :(得分:0)

也许您使用的是较旧的日志格式版本?

我们看到了同样的事情,但我们有 log.message.format.version=0.9.0.1

我认为这就是为什么直到 0.10 才引入日志消息时间戳