在 Debian 上,**Kafka 连接 ZooKeeper(ZK)**主要取决于你用的是 Kafka 2.x/3.x(依赖 ZK) 还是 Kafka 3.x+ KRaft(不依赖 ZK)。下面按常见场景说明。
kafka-topics.sh --version
sudo apt update
sudo apt install zookeeper zookeeperd -y
启动 ZK:
sudo systemctl enable zookeeper
sudo systemctl start zookeeper
检查:
sudo systemctl status zookeeper
编辑 Kafka 的 server.properties:
sudo nano /etc/kafka/server.properties
或(源码包):
nano kafka/config/server.properties
关键配置:
zookeeper.connect=localhost:2181
如果是集群:
zookeeper.connect=zk1:2181,zk2:2181,zk3:2181
kafka-server-start.sh -daemon /etc/kafka/server.properties
或 systemd(如已配置):
sudo systemctl start kafka
zookeeper-shell.sh localhost:2181
进入后执行:
ls /brokers
能看到 ids 说明 Kafka 已注册到 ZK。
kafka-topics.sh --list --zookeeper localhost:2181
kafka-topics.sh \
--create \
--zookeeper localhost:2181 \
--replication-factor 1 \
--partitions 1 \
--topic test
⚠️ Kafka 2.2+ 推荐用 --bootstrap-server
检查:
cat /var/log/kafka/server.log
常见原因:
/tmp/kafka-logs 权限问题sudo ufw allow 2181
sudo ufw allow 9092
如果你用的是新版本且不想用 ZK:
process.roles=broker,controller
controller.quorum.voters=1@localhost:9093
如果你愿意,可以告诉我:
我可以给你精确配置示例。