Kafka创建带有默认分区数的主题

sen*_*iwu 3 apache-kafka

我正在尝试从命令行创建一个新的Kafka主题

$ kafka-topics --create --zookeeper localhost:2181 --topic def-test 
Run Code Online (Sandbox Code Playgroud)

我得到错误

Missing required argument "[partitions]"
Run Code Online (Sandbox Code Playgroud)

从文档中,我看到该设置num.partitions应该可以解决问题。我有以下内容server.properties

# The default number of log partitions per topic. More partitions allow greater
# parallelism for consumption, but this will also result in more files across
# the brokers.
num.partitions=2
Run Code Online (Sandbox Code Playgroud)

但这没有生效。另外,我想知道kafka-topics仅连接到zookeeper且不带任何参数的命令将如何server.properties选择正确的值。如何创建主题而不必指定分区数(通过回退到其他位置指定的默认值)?

Kee*_*asa 29

我正在尝试Kafka 的快速入门指南,并遇到了这个问题。正如指南所建议的,我运行了以下命令,

$ bin/kafka-topics.sh --create --topic quickstart-events --bootstrap-server localhost:9092

并得到以下错误:

Missing required argument "[partitions]"

正如错误明确指出的那样,我们需要向我们使用的命令添加更多参数。为此,您需要添加--partitions 1. 添加后,您将收到以下错误。

Missing required argument "[replication-factor]"

对此也做同样的事情。添加标志--replication-factor 1。所以最后我的命令看起来像

bin/kafka-topics.sh --create --topic quickstart-events --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1
Run Code Online (Sandbox Code Playgroud)

我希望这对那些受困于快速入门指南的人有所帮助。下面给出了有关这些标志含义的更多信息。


在此输入图像描述 在此输入图像描述

  • 很奇怪,kafka-topic.sh 规范规定分区参数是可选的,但实际上不是...... (5认同)

Lij*_*ohn 5

在kafka CLI中,分区数是必填选项。num.partitions是自动创建的主题的默认分区。

您可以做的一件事是,使用prop“ auto.create.topics.enable”启用自动主题创建,然后每当对不存在的主题进行获取或产生请求时,它将使用默认分区自动创建

  • 快速入门的第 3 步建议分区和复制因子是可选的 https://kafka.apache.org/quickstart 此外,bin/kafka-topics.sh 提供的选项列表明确提到“如果未为创建提供,则使用默认值为集群默认值。” (卡夫卡_2.13-3.0.0) (2认同)