kafka-console-consumer 是否从多个分区消费

does kakfka-console-consumer consumes from multiple partitions

我有一个包含多个分区的 kafka 主题。

我想将主题转储到文件中以在那里进行一些分析,因此我认为最简单的方法是使用 kafka-console-consumer。

我的问题是,kafka-console-consumer 是能够读取所有主题分区,还是会分配给单个分区?

如果不是,如何将 kafka-console-consumer 分配给特定分区,因此必须启动与分区一样多的 kafka-console-consumers。

是的,kafka-console-consumer 从所有可用分区读取。也看看 kafkacat,它有一些更高级但有用的功能。

正如 Lukas 之前提到的,您可以使用 kafkacat 将主题中的所有消息转储到本地文件:

kafkacat -b a_broker -t your_topic -o beginning > all_msgs.bin

这将消耗来自所有分区的消息,如果您想限制为单个分区,请使用 -p <partition> 开关。

默认的输出消息分隔符是换行符 (\n),如果您需要其他分隔符,请使用 -f "<fmt>" 选项。