在 Debian 上,**Kafka 连接 ZooKeeper(ZK)**通常有两种场景:
下面按常见情况说明。
Kafka 通过配置文件连接 ZK:
/etc/kafka/server.properties
关键参数:
zookeeper.connect=localhost:2181
如果是集群:
zookeeper.connect=zk1:2181,zk2:2181,zk3:2181
⚠️ Kafka 3.x 以后新集群推荐 KRaft 模式(不依赖 ZK),但老集群仍用 ZK。
sudo systemctl start zookeeper
sudo systemctl enable zookeeper
确认:
ss -antp | grep 2181
sudo vi /etc/kafka/server.properties
zookeeper.connect=localhost:2181
listeners=PLAINTEXT://:9092
sudo systemctl start kafka
sudo systemctl enable kafka
# 启动 ZK
bin/zookeeper-server-start.sh config/zookeeper.properties
# 另开终端启动 Kafka
bin/kafka-server-start.sh config/server.properties
journalctl -u kafka -f
或:
tail -f /var/log/kafka/server.log
看到类似:
[zookeeper] hair Connected to localhost:2181
kafka-topics.sh --create \
--topic test \
--bootstrap-server localhost:9092 \
--partitions 1 \
--replication-factor 1
查看:
kafka-topics.sh --list --bootstrap-server localhost:9092
zookeeper.connect 是否写错sudo ufw allow 2181
sudo ufw allow 9092
在 /etc/hosts 加:
127.0.0.1 zk1
用 KRaft:
process.roles=broker,controller
Debian 上 Kafka 连 ZK,就是改
server.properties里的zookeeper.connect,确保 ZK 先起来,再起 Kafka。
如果你愿意,可以告诉我:
我可以给你一份可直接用的配置。