【发布时间】:2021-06-28 17:02:55
【问题描述】:
我对 Kafka 非常陌生。我已经在我的 Mac 上使用自制软件安装了 kafka 和 zookeeper,我正在玩 the quickstart guide。
我已经能够使用以下命令和 STDIN 将消息推送到 Kafka
kafka-console-producer --broker-list localhost:9092 --topic test
我可以使用
kafka-console-consumer --bootstrap-server localhost:9092 --topic test --from-beginning
我不清楚我如何使用偏移量。我的理解是,添加到主题的每条消息都会有一个数字的增量偏移值。但是,如果我尝试做这样的事情
kafka-console-consumer --bootstrap-server localhost:9092 --topic test --offset 1
我得到一个非零状态码并且没有显示任何消息(除了通常的帮助/使用信息)
我也无法使用 latest 或 earliest 关键字
kafka-console-consumer --bootstrap-server localhost:9092 --topic test --offset earliest
kafka-console-consumer --bootstrap-server localhost:9092 --topic test --offset latest
以上两个都返回非零状态码。
我是否从根本上误解了偏移量?如果没有,有没有办法列出所有消息和它们的偏移量?最后——kafka-console-consumer 的 --offset 标志的最简单示例是什么?
【问题讨论】:
-
嘿,在查看控制台使用者的源代码后,似乎没有选项可以根据需要将偏移量设置为某个值(您可以通过使用 seek api 调用对实际使用者执行此操作) . latest 是默认值(也就是说,如果您在没有 --from-beginning 的情况下启动控制台使用者,它将只接收“新”数据)。 --from-beginning 与“最早”相同。您可以使用 group 选项,它允许您重复使用相同的 group id,保证消费者连续运行不会收到重复的消息。
-
谢谢@RoyShahaf,这非常有用(尤其是组信息)——如果你有时间,随机跟进问题:“查看控制台消费者的源代码”——你在哪里看的这个的源代码?
-
很高兴能帮上忙。关于你的后续问题:我用谷歌搜索了 kafka-console-consumer.sh,它引导我到一些 github,其中包含一些名为 kafka-console-consumer.sh 的文件,该文件似乎正在运行 ConsoleConsumer,所以我用谷歌搜索并找到了一些看起来相关的东西:)
标签: apache-kafka kafka-consumer-api