📅  最后修改于: 2023-12-03 14:43:38.256000             🧑  作者: Mango
Kafkacat是一个快速而轻量的Kafka命令行工具,它使用librdkafka库提供高级Kafka客户端功能,例如消费者、生产者、主题元数据查看器以及分区查找器。在此文档中,我们将分享如何使用Kafkacat来接收Kafka消息。
您可以从以下链接中找到librdkafka和kafkacat的二进制文件。请注意,它们在Linux、macOS、FreeBSD和Windows上都受支持。
https://github.com/edenhill/kafkacat
您也可以通过Homebrew在macOS上进行安装:
brew install kafkacat
使用以下命令来从Kafka主题中读取消息:
kafkacat -b <broker_hostname>:<broker_port> -C -t <topic_name>
-b
: Kafka broker的主机名和端口。例如,localhost:9092
。-C
: 启用kafkacat消费模式。-t
: Kafka topic的名称。例如,my_topic
。这将启动kafkacat,并从Kafka topic中读取数据。您会看到类似以下内容的输出信息:
% Reached end of topic my_topic [0] at offset 0
{"key": "value1"}
{"key": "value2"}
这里我们可以看到从主题“my_topic”中读取到的两个消息。
您也可以查看消息的偏移量。使用以下命令:
kafkacat -b <broker_hostname>:<broker_port> -C -t <topic_name> -o <offset_value>
-o
: 从offset_value位置开始在主题上启动消费。此命令将从Kafka topic的某个偏移量开始阅读消息。
您可以将offset_value
设置为以下之一:
beginning
: 从主题的开始位置读取数据。end
: 从主题的末尾位置读取数据。stored
: 从保存的消费者偏移量读取数据。invalid
: 如果未找到消费者偏移量,则从开始位置读取数据。考虑以下示例:
kafkacat -b localhost:9092 -C -t my_topic -o beginning
这将从“my_topic”主题的开始位置读取所有消息。
默认情况下,kafkacat只会显示消息的所有内容。要查看消息的键值,请执行以下操作:
kafkacat -b <broker_hostname>:<broker_port> -C -t <topic_name> -f 'Topic %t[%p], offset %o, key %k: %s\n'
-f
: 格式化输出。此处示例参数将消息格式化为“Topic my_topic[0], offset 1, key my_key: my_value”。这将输出消息的键值,就像:
Topic my_topic[0], offset 1, key my_key: my_value
您可以使用-K
选项在同一个会话中启用可靠消费。这允许您在协调器附近进行重新平衡时保持消费者组中的位置。如果没有使用该选项,则kafkacat将重复阅读消息。
kafkacat -b <broker_hostname>:<broker_port> -C -t <topic_name> -o <offset_value> -K
可以使用以下命令来消费多个主题:
kafkacat -b <broker_hostname>:<broker_port> -C -t <topic1_name>,<topic2_name>,<topic3_name>
这将创建一个消费者并向三个主题提供数据。
在本文中,我们已经了解了如何使用kafkacat接收Kafka消息。希望此文档对程序员有所帮助。
此文档参考了官方文档和网络资源。