在 Debian 上让 Kafka 连接 Zookeeper,核心就是:
正确配置 Kafka 的 server.properties,并确保 Zookeeper 已启动且网络可达。下面按常见场景一步步说明。
✅ Kafka 3.x 以后支持 KRaft 模式(无 Zookeeper),如你用的是 KRaft,请说明,我给你单独方案。
sudo apt update
sudo apt install zookeeper zookeeperd -y
sudo systemctl enable zookeeper
sudo systemctl start zookeeper
sudo systemctl status zookeeper
默认端口:
2181
cd /opt/kafka/config
# 或解压目录
server.propertiesvim server.properties
zookeeper.connect=localhost:2181
如果是 远程 Zookeeper 集群:
zookeeper.connect=zk1:2181,zk2:2181,zk3:2181
如指定 Kafka 在 ZK 中的根路径:
zookeeper.connect=localhost:2181/kafka
/opt/kafka/bin/kafka-server-start.sh \
/opt/kafka/config/server.properties
后台运行:
/opt/kafka/bin/kafka-server-start.sh \
/opt/kafka/config/server.properties &
sudo apt install zookeeper-client -y
zkCli.sh
进入后执行:
ls /
应看到:
[cluster, controller, brokers, admin, isr_change_notification]
或(如果指定了路径):
ls /kafka
/opt/kafka/bin/kafka-topics.sh \
--create \
--topic test \
--bootstrap-server localhost:9092 \
--partitions 1 \
--replication-factor 1
列出 Topic:
/opt/kafka/bin/kafka-topics.sh \
--list \
--bootstrap-server localhost:9092
Connection refused原因:
排查:
ss -lntp | grep 2181
查看日志:
tail -f /opt/kafka/logs/server.log
常见错误:
zookeeper.connect 写错sudo ufw allow 2181
sudo ufw allow 9092
如果你用的是 Kafka 3.x+ 且不想用 Zookeeper:
process.roles=broker,controller
node.id=1
controller.quorum.voters=1@localhost:9093
✅ 不需要 Zookeeper
✅ Kafka 连接 Zookeeper 只需一行配置:
zookeeper.connect=localhost:2181
✅ 前提:
如果你愿意,可以告诉我:
我可以给你 完全贴合你环境的配置示例 ✅