【问题标题】:Kafka GetOffsetShell timestamp doesn't seem to workKafka GetOffsetShell 时间戳似乎不起作用
【发布时间】:2021-06-25 02:30:14
【问题描述】:

我想查看一个从特定时间开始的 Kafka 主题,使用 kafka-console-consumer 并将对应于该时间的 --offset 传递给它。为了弄清楚要指定的偏移量,我尝试使用以下命令:

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:
...

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

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

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

我的问题是:如何获得中间时间的偏移量?我尝试使用我认为应该有一些数据的毫秒时间戳。


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

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

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

【问题讨论】:

  • 你运行的是什么版本的 Kafka?
  • 信息卡夫卡版本:1.1.0

标签: apache-kafka


【解决方案1】:

当我在我的 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 的示例

【讨论】:

  • 尝试了较短的(10 位,秒)时间戳,但没有帮助。我会采纳你的其他建议,看看我是否能找到一个合理的时间戳。
【解决方案2】:

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

我们看到同样的东西,但我们有 log.message.format.version=0.9.0.1

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

【讨论】:

    猜你喜欢
    • 2017-11-05
    • 2017-07-31
    • 1970-01-01
    • 1970-01-01
    • 2017-12-31
    • 2020-07-24
    • 2020-03-03
    • 2016-11-29
    • 2016-02-01
    相关资源
    最近更新 更多