温馨提示×

Debian如何启动Kafka服务

小樊
38
2026-08-22 07:17:29
栏目: 智能运维

在 Debian 系统上启动 Apache Kafka,通常分为 手动启动作为系统服务(systemd)启动 两种方式。下面按常见场景详细说明。


一、前置条件

1. 安装 Java(Kafka 依赖)

Kafka 需要 Java 8 及以上版本:

sudo apt update
sudo apt install openjdk-17-jdk -y

验证:

java -version

2. 下载并解压 Kafka

以 Kafka 3.x 为例:

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

2.13 是 Scala 版本,不影响使用)


二、手动启动 Kafka(适合测试)

Kafka 依赖 Zookeeper(或 KRaft 模式,见后文)。

1️⃣ 启动 Zookeeper

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

默认端口:2181


2️⃣ 启动 Kafka Broker

新开一个终端:

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

看到类似日志说明启动成功:

[KafkaServer id=0] started

三、后台运行(推荐)

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

四、使用 systemd 管理 Kafka(生产推荐 ✅)

1️⃣ 创建 Zookeeper systemd 服务

sudo nano /etc/systemd/system/zookeeper.service

内容:

[Unit]
Description=Apache Zookeeper
After=network.target

[Service]
Type=simple
User=root
ExecStart=/opt/kafka/kafka_2.13-3.6.1/bin/zookeeper-server-start.sh /opt/kafka/kafka_2.13-3.6.1/config/zookeeper.properties
ExecStop=/opt/kafka/kafka_2.13-3.6.1/bin/zookeeper-server-stop.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target

2️⃣ 创建 Kafka systemd 服务

sudo nano /etc/systemd/system/kafka.service
[Unit]
Description=Apache Kafka
After=zookeeper.service

[Service]
Type=simple
User=root
ExecStart=/opt/kafka/kafka_2.13-3.6.1/bin/kafka-server-start.sh /opt/kafka/kafka_2.13-3.6.1/config/server.properties
ExecStop=/opt/kafka/kafka_2.13-3.6.1/bin/kafka-server-stop.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target

⚠️ 注意把路径换成你的实际 Kafka 路径


3️⃣ 启动并设置开机自启

sudo systemctl daemon-reload
sudo systemctl start zookeeper
sudo systemctl start kafka

开机自启:

sudo systemctl enable zookeeper
sudo systemctl enable kafka

查看状态:

systemctl status kafka

五、KRaft 模式(无需 Zookeeper,Kafka 3.x+)

如果你不想用 Zookeeper:

1️⃣ 生成 UUID

bin/kafka-storage.sh random-uuid

2️⃣ 格式化日志目录

bin/kafka-storage.sh format -t <UUID> -c config/kraft/server.properties

3️⃣ 启动 Kafka

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

六、验证 Kafka 是否启动成功

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

或:

ss -lntp | grep 9092

七、常见问题

❌ 端口被占用

lsof -i:9092

❌ Java 找不到

export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64

如果你愿意,我可以:

  • ✅ 帮你写 完整的一键部署脚本
  • ✅ 配置 多节点 Kafka 集群
  • ✅ 配置 KRaft 模式 systemd 服务
  • ✅ 适合 Debian + Docker / 生产环境方案

只要告诉我你的 Kafka 版本和使用场景即可。

0