温馨提示×

Debian Kafka如何连接Zookeeper

小樊
48
2026-07-23 16:23:43
栏目: 智能运维

Debian 上让 Kafka 连接 Zookeeper,核心就是:
正确配置 Kafka 的 server.properties,并确保 Zookeeper 已启动且网络可达。下面按常见场景一步步说明。


一、环境说明(常见情况)

  • 操作系统:Debian 10 / 11 / 12
  • Kafka 版本:2.x / 3.x(仍使用 Zookeeper)
  • Zookeeper:本地或远程

✅ Kafka 3.x 以后支持 KRaft 模式(无 Zookeeper),如你用的是 KRaft,请说明,我给你单独方案。


二、安装 Zookeeper(如果还没装)

1️⃣ 使用 apt 安装(最简单)

sudo apt update
sudo apt install zookeeper zookeeperd -y

2️⃣ 启动 Zookeeper

sudo systemctl enable zookeeper
sudo systemctl start zookeeper

3️⃣ 检查状态

sudo systemctl status zookeeper

默认端口:

2181

三、Kafka 连接 Zookeeper(关键配置)

1️⃣ 进入 Kafka 配置目录

cd /opt/kafka/config
# 或解压目录

2️⃣ 编辑 server.properties

vim server.properties

3️⃣ 设置 Zookeeper 地址(核心)

zookeeper.connect=localhost:2181

如果是 远程 Zookeeper 集群

zookeeper.connect=zk1:2181,zk2:2181,zk3:2181

如指定 Kafka 在 ZK 中的根路径:

zookeeper.connect=localhost:2181/kafka

四、启动 Kafka(连接 Zookeeper)

1️⃣ 启动 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 &

五、验证 Kafka 是否成功连接 Zookeeper

1️⃣ 查看 Zookeeper 中的 Kafka 节点

sudo apt install zookeeper-client -y
zkCli.sh

进入后执行:

ls /

应看到:

[cluster, controller, brokers, admin, isr_change_notification]

或(如果指定了路径):

ls /kafka

2️⃣ 创建 Topic 测试

/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

六、常见错误 & 排查

❌ 1. Connection refused

原因:

  • Zookeeper 没启动
  • 端口不是 2181

排查:

ss -lntp | grep 2181

❌ 2. Kafka 启动失败

查看日志:

tail -f /opt/kafka/logs/server.log

常见错误:

  • zookeeper.connect 写错
  • 防火墙拦截

❌ 3. Debian 防火墙问题

sudo ufw allow 2181
sudo ufw allow 9092

七、KRaft 模式(无 Zookeeper,可选)

如果你用的是 Kafka 3.x+ 且不想用 Zookeeper

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

✅ 不需要 Zookeeper


八、总结(最简配置)

Kafka 连接 Zookeeper 只需一行配置:

zookeeper.connect=localhost:2181

前提:

  • Zookeeper 已启动
  • 端口 2181 可访问

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

  • Kafka 版本
  • Zookeeper 是否集群
  • 是否 Docker / 本机 / 云服务器

我可以给你 完全贴合你环境的配置示例

0