在 Debian 上配置 Kafka 的分区(partition),通常分为几种场景:创建 topic 时指定分区数、修改已有 topic 的分区数、以及服务端(broker)层面的相关配置。下面按常见用法说明。
一般 Kafka 解压在:
/opt/kafka
或
/usr/local/kafka
进入 Kafka 目录(以 /opt/kafka 为例):
cd /opt/kafka
kafka-topics.shbin/kafka-topics.sh \
--create \
--bootstrap-server localhost:9092 \
--replication-factor 1 \
--partitions 3 \
--topic test-topic
说明:
--partitions 3:指定 3 个分区--replication-factor 1:副本数(生产环境一般 ≥2)✅ 分区数创建后只能增加,不能减少
bin/kafka-topics.sh \
--describe \
--bootstrap-server localhost:9092 \
--topic test-topic
输出示例:
Topic: test-topic PartitionCount: 3 ReplicationFactor: 1
bin/kafka-topics.sh \
--alter \
--bootstrap-server localhost:9092 \
--partitions 6 \
--topic test-topic
⚠️ 注意:
编辑:
vi /opt/kafka/config/server.properties
常用配置:
# 默认分区数(新建 topic 未指定时使用)
num.partitions=3
# 是否允许自动创建 topic(含默认分区)
auto.create.topics.enable=true
修改后重启 Kafka:
bin/kafka-server-stop.sh
bin/kafka-server-start.sh -daemon config/server.properties
producer.send(new ProducerRecord<>("test-topic", "key1", "value1"));
实现:
org.apache.kafka.clients.producer.Partitioner
Debian 防火墙:
ufw allow 9092
server.properties 中:
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://your-host-ip:9092
| 场景 | 命令 |
|---|---|
| 创建分区 | --partitions N |
| 查看分区 | --describe |
| 增加分区 | --alter --partitions N |
| 默认分区 | num.partitions |
如果你愿意,我可以: