在 Linux 上创建 Kafka 主题(Topic),通常是通过 Kafka 自带的命令行工具完成的。下面是最常用、最清晰的做法。
localhost:9092)/opt/kafka 或 /usr/local/kafka)kafka-topics.sh 创建主题(最常用)cd /opt/kafka/bin
./kafka-topics.sh --create \
--topic test-topic \
--bootstrap-server localhost:9092 \
--partitions 3 \
--replication-factor 1
| 参数 | 说明 |
|---|---|
--create |
创建主题 |
--topic |
主题名称 |
--bootstrap-server |
Kafka 服务地址 |
--partitions |
分区数 |
--replication-factor |
副本数 |
✅ 推荐:Kafka 2.2+ 使用 --bootstrap-server 而不是 --zookeeper
./kafka-topics.sh --list --bootstrap-server localhost:9092
查看主题详情:
./kafka-topics.sh --describe --topic test-topic --bootstrap-server localhost:9092
⚠️ 仅适用于 Kafka < 2.2 或仍使用 Zookeeper 的集群
./kafka-topics.sh --create \
--topic test-topic \
--zookeeper localhost:2181 \
--partitions 3 \
--replication-factor 1
--replica-assignment 0:1:2,1:2:0
--config retention.ms=86400000
--config segment.bytes=1073741824
示例:
./kafka-topics.sh --create \
--topic test-topic \
--bootstrap-server localhost:9092 \
--partitions 3 \
--replication-factor 2 \
--config retention.ms=86400000
./kafka-console-producer.sh \
--topic test-topic \
--bootstrap-server localhost:9092
./kafka-console-consumer.sh \
--topic test-topic \
--from-beginning \
--bootstrap-server localhost:9092
replication factor larger than available brokers原因:副本数 > broker 数量
✅ 解决:
--replication-factor 1
Topic already exists✅ 可先删除:
./kafka-topics.sh --delete \
--topic test-topic \
--bootstrap-server localhost:9092
kafka-topics.sh --create \
--topic my-topic \
--bootstrap-server localhost:9092 \
--partitions 3 \
--replication-factor 1
如果你愿意,可以告诉我:
我可以给你更精确、可复制的命令 ✅