在 Debian 下,**Kafka 连接 ZooKeeper(ZK)**本质上是通过 Kafka 配置文件来指定的,不是“连上就完事”,而是启动 Kafka 时让它知道 ZK 在哪。下面按常见场景给你说明。
确保你已经:
java -version
已安装 Kafka(二进制包或 apt 不一定有最新版,推荐官方二进制包)
已启动 ZooKeeper
Kafka 老版本依赖 ZK,新版本(Kafka 3.x+)可用 KRaft,但默认还是 ZK 模式
cd kafka
vi config/server.properties
zookeeper.connect=localhost:2181
如果是多节点 ZK 集群:
zookeeper.connect=zk1:2181,zk2:2181,zk3:2181
可加 chroot(推荐):
zookeeper.connect=zk1:2181,zk2:2181,zk3:2181/kafka
注意:如果用
/kafka,需要提前在 ZK 里创建这个节点
# broker id
broker.id=0
# 监听地址
listeners=PLAINTEXT://:9092
bin/zookeeper-server-start.sh config/zookeeper.properties
bin/kafka-server-start.sh config/server.properties
tail -f logs/server.log
看到类似:
[ZooKeeperClient Kafka server] Connected
bin/zookeeper-shell.sh localhost:2181
ls /brokers/ids
有 0 说明 Kafka 已注册到 ZK。
✅ 检查:
sudo ufw status
localhost 是否解析正确(可换成 127.0.0.1)可以帮你写:
zookeeper.servicekafka.service如果你用的是 Kafka 3.3+:
如果你愿意,我可以:
直接把报错贴出来就行。