温馨提示×

debian kafka如何连zk

小樊
37
2026-09-16 01:12:40
栏目: 智能运维

在 Debian 上,**Kafka 连接 ZooKeeper(ZK)**通常有两种场景:

  1. Kafka 作为服务启动,连接已有/自建 ZooKeeper
  2. Kafka 自带 ZK(旧版本)一起启动

下面按常见情况说明。


一、Kafka 连接 ZooKeeper 的核心配置

Kafka 通过配置文件连接 ZK:

/etc/kafka/server.properties

关键参数:

zookeeper.connect=localhost:2181

如果是集群:

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

⚠️ Kafka 3.x 以后新集群推荐 KRaft 模式(不依赖 ZK),但老集群仍用 ZK。


二、Debian 上常见部署方式

方式 1:Debian 已安装 ZooKeeper

1. 启动 ZooKeeper

sudo systemctl start zookeeper
sudo systemctl enable zookeeper

确认:

ss -antp | grep 2181

2. 修改 Kafka 配置

sudo vi /etc/kafka/server.properties
zookeeper.connect=localhost:2181
listeners=PLAINTEXT://:9092

3. 启动 Kafka

sudo systemctl start kafka
sudo systemctl enable kafka

方式 2:使用 Kafka 自带的 ZooKeeper(旧版本)

# 启动 ZK
bin/zookeeper-server-start.sh config/zookeeper.properties

# 另开终端启动 Kafka
bin/kafka-server-start.sh config/server.properties

三、验证 Kafka 是否成功连接 ZK

方法 1:看 Kafka 日志

journalctl -u kafka -f

或:

tail -f /var/log/kafka/server.log

看到类似:

[zookeeper] hair Connected to localhost:2181

方法 2:创建 Topic 测试

kafka-topics.sh --create \
  --topic test \
  --bootstrap-server localhost:9092 \
  --partitions 1 \
  --replication-factor 1

查看:

kafka-topics.sh --list --bootstrap-server localhost:9092

四、常见问题(Debian)

1. Kafka 起不来,提示 ZK 连不上

  • 检查 ZK 是否启动
  • 检查 zookeeper.connect 是否写错
  • 防火墙:
sudo ufw allow 2181
sudo ufw allow 9092

2. 使用 hostname 连不上

/etc/hosts 加:

127.0.0.1 zk1

3. Kafka 3.x 后不想用 ZK

用 KRaft:

process.roles=broker,controller

五、总结一句话

Debian 上 Kafka 连 ZK,就是改 server.properties 里的 zookeeper.connect,确保 ZK 先起来,再起 Kafka。

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

  • Kafka 版本
  • 是否集群
  • 是否 Docker / 裸机

我可以给你一份可直接用的配置

0