创建 Kafka 主题

17 Mar 2025 | 阅读 2 分钟

在本节中,用户将学习使用命令行界面 (CLI) 在 Windows 上创建主题。

创建主题使用以下步骤

步骤 1: 首先,确保 zookeeper 和 Kafka 服务器都已启动。

步骤 2: 在控制台上键入“kafka-topics -zookeeper localhost:2181 -topic-create”并按 Enter 键。 此处,主题的名称是“myfirst”

注意: 在 Linux 上创建主题时,使用“.sh”代替“.bat”(相应地)。

Creating Kafka Topics

输出将显示为

Creating Kafka Topics

上面的快照显示错误“缺少必需的参数分区”。 因为在创建主题时必须声明分区的数量及其 ISR(复制因子)。 如果未声明,则会抛出此类错误。

步骤 3: 现在,在满足要求后重写上述命令,如下所示

kafka-topics.bat -zookeeper localhost:2181 -topic <topic_name> --create ?partitions <value> --replication-factor <value>”。 按 Enter 键。

Creating Kafka Topics

同样,将会抛出一个错误,指示复制因子大于 broker 的数量。 到目前为止,我们只启动了一个 broker,而不是多个 broker。 因此,将出现此类错误。

注意: 复制因子永远不能大于可用 broker 的数量。

步骤 4: 暂时将复制因子视为 1,然后重写上述命令。 按 Enter 键。 输出将显示为

Creating Kafka Topics

因此,如果所有步骤都成功处理,则主题将成功创建,如上图所示。

主题已存在

如果用户创建了另一个与现有主题名称相同的主题,则会抛出错误“主题 <topic_name> 已经存在”。

Creating Kafka Topics

关于主题的更多信息

1) 列出主题的数量

要列出在 broker 中创建的主题的数量,请使用“-list”命令,如下所示

“kafka-topics.bat -zookeeper localhost:2181 -list”。

Creating Kafka Topics

上图中有两个主题“myfirst”和“mysecond”。

2) 描述一个主题

要在 broker 中描述一个主题,请使用“-describe”命令,如下所示

kafka-topics.bat -zookeeper localhost:2181 -describe --topic <topic_name>”。 此命令提供主题的完整描述,包括分区的数量、leader、副本和 ISR。

Creating Kafka Topics

3) 删除一个主题

要删除主题,请使用“-delete”命令。 删除命令的用法如下: 'kafka-topics.sh -zookeeper localhost:2181 -topic<topic_name> --delete'

注意: Windows 用户在删除任何主题时都会遇到问题。 因此,更喜欢在 Linux 或 macOS 上使用此命令。

Creating Kafka Topics

在上图中,可以看到有两个现有主题“myfirst”和“mysecond”。 删除“mysecond”主题后,仅“myfirst”主题通过“-list”命令列出。

因此,通过这种方式,可以创建各种主题,并且可以将多个命令应用于不同的主题。