Kafka:如何显示偏移量

Ala*_*orm 6 apache-kafka kafka-consumer-api

我对卡夫卡非常陌生。我已经在我的 mac 上使用自制软件安装了 kafka 和 zookeeper,我正在玩快速入门指南

我已经能够使用以下命令和 STDIN 将消息推送到 Kafka

kafka-console-producer --broker-list localhost:9092 --topic test
Run Code Online (Sandbox Code Playgroud)

我可以使用

kafka-console-consumer --bootstrap-server localhost:9092 --topic test --from-beginning
Run Code Online (Sandbox Code Playgroud)

我不清楚的是我如何使用偏移量。我的理解是,添加到主题的每条消息都会有一个数字增量偏移值。但是,如果我尝试做这样的事情

kafka-console-consumer --bootstrap-server localhost:9092 --topic test --offset 1
Run Code Online (Sandbox Code Playgroud)

我得到一个非零状态代码并且没有显示任何消息(除了通常的帮助/使用信息)

我也无法使用最新最早的关键字

kafka-console-consumer --bootstrap-server localhost:9092 --topic test --offset earliest
kafka-console-consumer --bootstrap-server localhost:9092 --topic test --offset latest
Run Code Online (Sandbox Code Playgroud)

以上两者也返回非零状态代码。

我从根本上误解了偏移量吗?如果没有,有没有办法列出所有带有偏移量的消息?最后 - 最简单的--offset标志示例是kafka-console-consumer什么?

cri*_*007 5

如果您在给出偏移值后查看输出,它会说您需要指定一个分区(在帮助部分的顶部)

主题被细分为多个分区,偏移量 1 只能存在于可能数百个分区中的一个分区上,因此您必须指定它

关于显示偏移量,查找GetOffsetShell命令语法


p13*_*r0m 5

一个很好的命令行工具,可以显示每条消息的偏移量kafkacat

kafkacat -b localhost:9092 -C -t test -f 'Topic %t [%p] at offset %o: key %k: %s\n'
Run Code Online (Sandbox Code Playgroud)

它会打印出类似的东西

Topic test [5] at offset 111: key "0171bf8102007900e33": {"Message": "1"} 
Topic test [2] at offset 123: key "070021b0f001f614c1b": {"Message": "2"}
Run Code Online (Sandbox Code Playgroud)


yur*_*s87 5

由于GetOffsetShell适用于 PLAINTEXT,因此对许多人来说可能会带来不便。
好消息是,根据9099 PRprint.offset中的沟通,其他属性,包括似乎已进入 2.7 。 现在应该可以用了吧!
print.offset=true