下面给你一份**在 Debian 上配置 Kafka 集群(多 broker)**的实用步骤,基于 Kafka 3.x + Zookeeper(社区最常见方案)。如果你用的是 Kafka 3.3+ 且想用 KRaft 模式,我也可以单独说。
假设你有 3 台 Debian 机器:
| 主机名 | IP |
|---|---|
| kafka1 | 192.168.1.11 |
| kafka2 | 192.168.1.12 |
| kafka3 | 192.168.1.13 |
每台机器都做以下操作(除配置不同外)。
Kafka 需要 JDK 8 或 11(推荐 11)
sudo apt update
sudo apt install -y openjdk-11-jdk
java -version
sudo useradd -m -s /bin/bash kafka
sudo su - kafka
cd /opt
sudo wget https://downloads.apache.org/kafka/3.6.1/kafka_2.13-3.6.1.tgz
sudo tar -xzf kafka_2.13-3.6.1.tgz
sudo mv kafka_2.13-3.6.1 kafka
sudo chown -R kafka:kafka /opt/kafka
vim /opt/kafka/config/zookeeper.properties
内容示例:
dataDir=/opt/kafka/zookeeper
clientPort=2181
maxClientCnxns=0
server.1=192.168.1.11:2888:3888
server.2=192.168.1.12:2888:3888
server.3=192.168.1.13:2888:3888
每台机器不同:
# kafka1
echo 1 > /opt/kafka/zookeeper/myid
# kafka2
echo 2 > /opt/kafka/zookeeper/myid
# kafka3
echo 3 > /opt/kafka/zookeeper/myid
编辑 server.properties
vim /opt/kafka/config/server.properties
broker.id=1 # 每台不同
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://192.168.1.11:9092
num.partitions=3
default.replication.factor=3
min.insync.replicas=2
zookeeper.connect=192.168.1.11:2181,192.168.1.12:2181,192.168.1.13:2181
log.dirs=/opt/kafka/kafka-logs
| 机器 | broker.id | advertised.listeners |
|---|---|---|
| kafka1 | 1 | 192.168.1.11:9092 |
| kafka2 | 2 | 192.168.1.12:9092 |
| kafka3 | 3 | 192.168.1.13:9092 |
sudo vim /etc/systemd/system/zookeeper.service
[Unit]
Description=Zookeeper
After=network.target
[Service]
User=kafka
ExecStart=/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties
Restart=on-failure
[Install]
WantedBy=multi-user.target
sudo vim /etc/systemd/system/kafka.service
[Unit]
Description=Kafka
After=zookeeper.service
[Service]
User=kafka
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
Restart=on-failure
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable zookeeper kafka
sudo systemctl start zookeeper
sudo systemctl start kafka
/opt/kafka/bin/kafka-topics.sh \
--create \
--topic test \
--bootstrap-server 192.168.1.11:9092 \
--partitions 3 \
--replication-factor 3
/opt/kafka/bin/kafka-topics.sh \
--describe \
--topic test \
--bootstrap-server 192.168.1.11:9092
看到 Leader / Replicas / ISR 有 3 个节点即成功。
✅ 防火墙
sudo ufw allow 2181
sudo ufw allow 9092
✅ 时间同步
sudo apt install ntp
✅ 磁盘建议单独挂载(log.dirs)
我可以继续帮你:
直接告诉我你现在用的是 Debian 几 + Kafka 版本 + 是否用 Docker 即可。