在 Debian 系统中对 Kafka 进行扩容,通常指以下三类场景之一:
下面按最常见、也是你大概率想要的 Broker 扩容 + 分区重平衡 来说明。
在新 Debian 机器或原机器新目录中:
# 安装 JDK
apt update
apt install -y openjdk-17-jdk
# 创建 kafka 用户(可选)
useradd -m kafka
wget https://downloads.apache.org/kafka/3.6.1/kafka_2.13-3.6.1.tgz
tar -xzf kafka_2.13-3.6.1.tgz -C /opt
ln -s /opt/kafka_2.13-3.6.1 /opt/kafka
server.propertiesbroker.id=2 # 不能等于已有 broker
listeners=PLAINTEXT://:9092
log.dirs=/data/kafka-logs
zookeeper.connect=zk1:2181,zk2:2181,zk3:2181/kafka
✅ Kafka 3.x 推荐用 KRaft,若你用 ZooKeeper 就保持原模式
/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties
此时:
kafka-topics.sh --bootstrap-server broker1:9092 \
--describe --topic my-topic
kafka-topics.sh --bootstrap-server broker1:9092 \
--alter --topic my-topic --partitions 6
⚠️ 只能增不能减
kafka-reassign-partitions.sh \
--bootstrap-server broker1:9092 \
--topics-to-move-json-file topics.json \
--broker-list "0,1,2" \
--generate
topics.json 示例:
{
"topics": [
{ "topic": "my-topic" }
],
"version": 1
}
kafka-reassign-partitions.sh \
--bootstrap-server broker1:9092 \
--reassignment-json-file reassignment.json \
--execute
kafka-reassign-partitions.sh \
--bootstrap-server broker1:9092 \
--reassignment-json-file reassignment.json \
--verify
如果是单 broker 加磁盘:
mkfs.ext4 /dev/sdb
mount /data/kafka-logs2 /dev/sdb
修改:
log.dirs=/data/kafka-logs,/data/kafka-logs2
重启 broker 即可。
ulimit 低 → 修改 /etc/security/limits.conf加机器 → 配 server.properties → 启动
→ 增加 partition
→ reassignment 到新 broker
→ verify
如果你能告诉我:
我可以给你 精确命令和 systemd 配置。