温馨提示×

debian kafka怎么连zk

小樊
39
2026-09-07 00:11:15
栏目: 智能运维

在 Debian 上,**Kafka 连接 ZooKeeper(ZK)**主要取决于你用的是 Kafka 2.x/3.x(依赖 ZK) 还是 Kafka 3.x+ KRaft(不依赖 ZK)。下面按常见场景说明。


一、确认 Kafka 版本

kafka-topics.sh --version
  • < 3.0 或 2.x:必须连 ZooKeeper
  • ≥ 3.0 且用 KRaft:不需要 ZK

二、Debian 上 Kafka 连接 ZooKeeper(常规方式)

1️⃣ 安装 ZooKeeper(Debian)

sudo apt update
sudo apt install zookeeper zookeeperd -y

启动 ZK:

sudo systemctl enable zookeeper
sudo systemctl start zookeeper

检查:

sudo systemctl status zookeeper

2️⃣ 修改 Kafka 配置

编辑 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

3️⃣ 启动 Kafka

kafka-server-start.sh -daemon /etc/kafka/server.properties

或 systemd(如已配置):

sudo systemctl start kafka

4️⃣ 验证 Kafka 是否连上 ZK

zookeeper-shell.sh localhost:2181

进入后执行:

ls /brokers

能看到 ids 说明 Kafka 已注册到 ZK。


三、命令行工具连接方式(老版本)

查看 topic(连 ZK)

kafka-topics.sh --list --zookeeper localhost:2181

创建 topic(老方式)

kafka-topics.sh \
  --create \
  --zookeeper localhost:2181 \
  --replication-factor 1 \
  --partitions 1 \
  --topic test

⚠️ Kafka 2.2+ 推荐用 --bootstrap-server


四、常见问题(Debian 特有)

❌ Kafka 起不来

检查:

cat /var/log/kafka/server.log

常见原因:

  • ZK 没启动
  • 端口 2181 被占用
  • /tmp/kafka-logs 权限问题

✅ 防火墙

sudo ufw allow 2181
sudo ufw allow 9092

五、Kafka 3.x + KRaft(不连 ZK)

如果你用的是新版本且不想用 ZK:

process.roles=broker,controller
controller.quorum.voters=1@localhost:9093

如果你愿意,可以告诉我:

  • Kafka 版本
  • 是否集群
  • 用 apt 还是源码安装

我可以给你精确配置示例

0