温馨提示×

怎样在debian部署kafka

小樊
32
2026-09-03 18:37:16
栏目: 智能运维

下面给你一个在 Debian(如 Debian 11 / 12)上部署 Apache Kafka 的实用步骤指南,以**单机模式(单 broker)**为例,适合测试和学习;最后也会说明如何做基本的集群化。


一、环境准备

1. 系统更新

sudo apt update
sudo apt upgrade -y

2. 安装 Java(Kafka 依赖 JVM)

Kafka 3.x 推荐 Java 8 / 11 / 17

sudo apt install -y openjdk-17-jdk

验证:

java -version

二、创建 Kafka 用户(推荐)

sudo useradd -m -s /bin/bash kafka
sudo su - kafka

后续操作可在 kafka 用户下完成。


三、下载并解压 Kafka

以 Kafka 3.7.0 为例(可自行替换版本)

cd ~
wget https://downloads.apache.org/kafka/3.7.0/kafka_2.13-3.7.0.tgz
tar -xzf kafka_2.13-3.7.0.tgz
mv kafka_2.13-3.7.0 kafka
cd kafka

四、启动 Zookeeper(Kafka 依赖)

⚠️ Kafka 3.3+ 开始支持 KRaft(无 Zookeeper),但新手建议先用 Zookeeper

1. 启动 Zookeeper

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

后台运行:

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

五、启动 Kafka Broker

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

后台运行:

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

检查是否启动:

tail -f kafka.log

看到 started (kafka.server.KafkaServer) 即成功。


六、测试 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. Zookeeper 服务

/etc/systemd/system/zookeeper.service

[Unit]
Description=Zookeeper
After=network.target

[Service]
User=kafka
ExecStart=/home/kafka/kafka/bin/zookeeper-server-start.sh /home/kafka/kafka/config/zookeeper.properties
ExecStop=/home/kafka/kafka/bin/zookeeper-server-stop.sh

[Install]
WantedBy=multi-user.target

2. Kafka 服务

/etc/systemd/system/kafka.service

[Unit]
Description=Apache Kafka
After=zookeeper.service

[Service]
User=kafka
ExecStart=/home/kafka/kafka/bin/kafka-server-start.sh /home/kafka/kafka/config/server.properties
ExecStop=/home/kafka/kafka/bin/kafka-server-stop.sh

[Install]
WantedBy=multi-user.target

启用:

sudo systemctl daemon-reload
sudo systemctl enable --now zookeeper
sudo systemctl enable --now kafka

八、常见问题

1. 端口问题

  • Kafka 默认:9092
  • Zookeeper 默认:2181
  • 云服务器需开放安全组

2. 远程访问

修改:

# config/server.properties
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://你的IP:9092

九、进阶(可选)

  • ✅ KRaft 模式(无 Zookeeper)
  • ✅ 多 broker 集群
  • ✅ SASL / SSL 安全
  • ✅ Kafka Connect / Kafka Streams

如果你需要:

  • KRaft 模式部署
  • 多节点集群
  • Docker / Kubernetes 部署
  • 生产环境配置建议

告诉我你的使用场景即可。

0