下面给你一个**在 Debian 系统上搭建 Kafka 集群(多节点)**的完整实战流程,基于 Kafka 3.x + Zookeeper(或 KRaft),适合生产环境理解。
| 节点 | IP | 角色 |
|---|---|---|
| node1 | 192.168.1.10 | Kafka + Zookeeper |
| node2 | 192.168.1.11 | Kafka + Zookeeper |
| node3 | 192.168.1.12 | Kafka + Zookeeper |
✅ 建议 3 台及以上奇数节点
# 查看 Debian 版本
cat /etc/debian_version
推荐:
sudo apt update
sudo apt install -y openjdk-11-jdk
验证:
java -version
sudo useradd -r -m -s /bin/bash 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
⚠️ Kafka 3.x 后可用 KRaft,但 Zookeeper 依然稳定
sudo vi /opt/kafka/config/zookeeper.properties
示例(每个节点相同):
tickTime=2000
dataDir=/opt/kafka/zookeeper-data
clientPort=2181
initLimit=5
syncLimit=2
server.1=192.168.1.10:2888:3888
server.2=192.168.1.11:2888:3888
server.3=192.168.1.12:2888:3888
sudo mkdir -p /opt/kafka/zookeeper-data
node1
echo 1 | sudo tee /opt/kafka/zookeeper-data/myid
node2
echo 2 | sudo tee /opt/kafka/zookeeper-data/myid
node3
echo 3 | sudo tee /opt/kafka/zookeeper-data/myid
sudo -u kafka /opt/kafka/bin/zookeeper-server-start.sh -daemon /opt/kafka/config/zookeeper.properties
检查:
echo ruok | nc localhost 2181
# 返回 imok
sudo vi /opt/kafka/config/server.properties
broker.id=1 # 每个节点不同(1/2/3)
listeners=PLAINTEXT://192.168.1.10:9092
log.dirs=/opt/kafka/kafka-logs
zookeeper.connect=192.168.1.10:2181,192.168.1.11:2181,192.168.1.12:2181
num.partitions=3
offsets.topic.replication.factor=3
default.replication.factor=3
⚠️ 注意:
broker.id 每个节点唯一listeners 写 本机 IPsudo -u kafka /opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties
/opt/kafka/bin/zookeeper-shell.sh localhost:2181 ls /brokers/ids
/opt/kafka/bin/kafka-topics.sh \
--create \
--topic test-topic \
--bootstrap-server 192.168.1.10:9092 \
--partitions 3 \
--replication-factor 3
/opt/kafka/bin/kafka-topics.sh \
--describe \
--topic test-topic \
--bootstrap-server 192.168.1.10:9092
/opt/kafka/bin/kafka-console-producer.sh \
--topic test-topic \
--bootstrap-server 192.168.1.10:9092
/opt/kafka/bin/kafka-console-consumer.sh \
--topic test-topic \
--from-beginning \
--bootstrap-server 192.168.1.10:9092
如果你想要 Kafka 3.x 新架构(推荐新项目),我可以单独给你:
✅ KRaft 单节点
✅ KRaft 集群
✅ 与 Zookeeper 对比
ss -lntp | grep 9092
meta.properties
log.retention.hours=168
log.segment.bytes
如果你愿意,我可以:
直接告诉我你 Debian 版本 + Kafka 版本 + 是否用 Zookeeper 即可。