在 Ubuntu 上对 Kafka 进行扩容,通常指以下三类场景之一:
下面按最常见、最实用的方式说明。
在 Ubuntu 新机器或新目录中:
sudo apt update
sudo apt install -y openjdk-11-jdk
下载并解压 Kafka(版本要和原集群一致):
wget https://archive.apache.org/dist/kafka/3.6.1/kafka_2.13-3.6.1.tgz
tar -xzf kafka_2.13-3.6.1.tgz
cd kafka_2.13-3.6.1
server.propertiesbroker.id=2 # 保证唯一
listeners=PLAINTEXT://:9092
log.dirs=/data/kafka-logs
zookeeper.connect=zk1:2181,zk2:2181,zk3:2181
Kafka 3.x 也可用 KRaft,但生产环境 Broker 扩容方式类似
bin/kafka-server-start.sh -daemon config/server.properties
此时:
生成迁移计划:
bin/kafka-reassign-partitions.sh \
--bootstrap-server broker1:9092 \
--generate \
--topics-to-move-json-file topics.json \
--broker-list 0,1,2
执行迁移:
bin/kafka-reassign-partitions.sh \
--bootstrap-server broker1:9092 \
--execute \
--reassignment-json-file reassign.json
查看进度:
bin/kafka-reassign-partitions.sh \
--bootstrap-server broker1:9092 \
--verify \
--reassignment-json-file reassign.json
bin/kafka-topics.sh --bootstrap-server broker1:9092 --describe --topic test
bin/kafka-topics.sh \
--bootstrap-server broker1:9092 \
--alter \
--topic test \
--partitions 6
⚠ 注意:
log.dirs=/data/kafka1,/data/kafka2
Kafka 会自动做 round-robin 写盘
lvextend -L +100G /dev/vg0/kafka
resize2fs /dev/vg0/kafka
✅ Broker 版本必须一致
✅ broker.id 不能冲突
✅ 扩容后务必做 partition rebalance
✅ 监控:
bin/kafka-consumer-groups.sh --bootstrap-server broker1:9092 --describe
如果你能告诉我:
我可以直接给你一套 可执行命令模板。