温馨提示×

怎么在debian跑kafka

小樊
41
2026-10-06 20:17:50
栏目: 智能运维

在 Debian 上运行 Apache Kafka,通常分为 安装依赖、下载 Kafka、启动 ZooKeeper(或 KRaft)、启动 Kafka、验证 几个步骤。下面给你一个最常用、最稳妥的方案(基于 Debian 12,Kafka 3.x)。


一、准备环境

1. 更新系统

sudo apt update
sudo apt upgrade -y

2. 安装 Java(Kafka 需要 JDK)

Kafka 3.x 推荐 Java 17(也支持 11)

sudo apt install -y openjdk-17-jdk

验证:

java -version

二、下载并安装 Kafka

1. 创建目录

sudo mkdir -p /opt/kafka
cd /opt/kafka

2. 下载 Kafka(以 3.7.0 为例)

wget https://downloads.apache.org/kafka/3.7.0/kafka_2.13-3.7.0.tgz

3. 解压

tar -xzf kafka_2.13-3.7.0.tgz
mv kafka_2.13-3.7.0/* .
rm -rf kafka_2.13-3.7.0 kafka_2.13-3.7.0.tgz

三、方式一:使用 ZooKeeper(传统方式,推荐新手)

1. 启动 ZooKeeper

bin/zookeeper-server-start.sh config/zookeeper.properties

(生产环境建议后台运行)

nohup bin/zookeeper-server-start.sh config/zookeeper.properties > zookeeper.log 2>&1 &

2. 启动 Kafka

bin/kafka-server-start.sh config/server.properties

后台运行:

nohup bin/kafka-server-start.sh config/server.properties > kafka.log 2>&1 &

四、方式二:使用 KRaft(无 ZooKeeper,新方案)

Kafka 3.x 开始支持,未来主流

1. 生成 Cluster ID

KAFKA_CLUSTER_ID=$(bin/kafka-storage.sh random-uuid)

2. 格式化存储

bin/kafka-storage.sh format -t $KAFKA_CLUSTER_ID -c config/kraft/server.properties

3. 启动 Kafka

bin/kafka-server-start.sh config/kraft/server.properties

五、验证 Kafka 是否正常运行

1. 创建 Topic

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

2. 查看 Topic

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

3. 生产消息

bin/kafka-console-producer.sh --topic test --bootstrap-server localhost:9092

输入:

hello kafka

4. 消费消息

bin/kafka-console-consumer.sh --topic test --from-beginning --bootstrap-server localhost:9092

六、常见问题

1. 端口被占用

Kafka 默认:

  • 9092(Kafka)
  • 2181(ZooKeeper)

2. 外网访问

修改:

listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://你的IP:9092

3. 开机自启(systemd)

如果你需要,我可以帮你写 Kafka + ZooKeeper 的 systemd 服务文件。


如果你告诉我:

  • Debian 版本
  • Kafka 版本
  • 是否用于生产
  • 是否用 Docker

我可以直接给你最适合你场景的一键方案。

0 踩