温馨提示×

ubuntu kafka配置怎样扩容

小樊
37
2026-09-29 18:09:56
栏目: 智能运维

在 Ubuntu 上对 Kafka 进行扩容,通常指以下三类场景之一:

  1. Broker 节点扩容(加机器 / 加进程)
  2. Topic 分区扩容(提升并发)
  3. 磁盘 / 存储扩容

下面按最常见、最实用的方式说明。


一、Kafka Broker 扩容(增加节点)

1. 新节点准备

在 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

2. 修改 server.properties

broker.id=2                # 保证唯一
listeners=PLAINTEXT://:9092
log.dirs=/data/kafka-logs
zookeeper.connect=zk1:2181,zk2:2181,zk3:2181

Kafka 3.x 也可用 KRaft,但生产环境 Broker 扩容方式类似


3. 启动新 Broker

bin/kafka-server-start.sh -daemon config/server.properties

此时:

  • 新 Broker 已加入集群
  • 但不会自动迁移数据

4. 数据再平衡(关键)

生成迁移计划:

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

二、Topic 分区扩容(提升吞吐)

查看当前分区

bin/kafka-topics.sh --bootstrap-server broker1:9092 --describe --topic test

增加分区

bin/kafka-topics.sh \
  --bootstrap-server broker1:9092 \
  --alter \
  --topic test \
  --partitions 6

⚠ 注意:

  • 分区只能增不能减
  • 已有消息不会重新分布

三、磁盘 / 存储扩容(Ubuntu)

方案 1:新增磁盘

log.dirs=/data/kafka1,/data/kafka2

Kafka 会自动做 round-robin 写盘

方案 2:LVM 扩容

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

如果你能告诉我:

  • Kafka 版本
  • 是否用 ZooKeeper / KRaft
  • 是 加机器 还是 加分区

我可以直接给你一套 可执行命令模板。

0 踩