温馨提示×

Debian Kafka怎么部署

小樊
42
2026-07-11 16:07:42
栏目: 智能运维

下面给你一份在 Debian 系统上部署 Apache Kafka 的完整实战指南,适用于 Debian 11 / 12,包含 单机部署基础生产建议


一、环境准备(Debian)

1. 更新系统

sudo apt update && sudo apt upgrade -y

2. 安装 Java(Kafka 必须)

Kafka 依赖 JVM,推荐 Java 17 或 11

sudo apt install -y openjdk-17-jdk

验证:

java -version

二、下载并安装 Kafka

1. 创建用户(推荐)

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

2. 下载 Kafka

cd /opt
sudo wget https://downloads.apache.org/kafka/3.6.1/kafka_2.13-3.6.1.tgz
sudo tar -xzf kafka_2.13-3.6.1.tgz
sudo mv kafka_2.13-3.6.1 kafka
sudo chown -R kafka:kafka kafka

三、启动 Kafka(自带 Zookeeper)

Kafka 3.x 仍支持 Zookeeper(新版本推荐 KRaft,后面会讲)

1. 启动 Zookeeper

sudo -u kafka /opt/kafka/bin/zookeeper-server-start.sh \
/opt/kafka/config/zookeeper.properties

后台运行:

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

2. 启动 Kafka Broker

sudo -u kafka /opt/kafka/bin/kafka-server-start.sh \
/opt/kafka/config/server.properties

后台运行:

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

四、验证 Kafka 是否成功

1. 创建 Topic

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

2. 查看 Topic

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

3. 发送消息

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

4. 消费消息

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

✅ 成功说明 Kafka 正常运行


五、Kafka 基础配置(生产建议)

1. 修改 server.properties

sudo vim /opt/kafka/config/server.properties

常见调整:

broker.id=1
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://服务器IP:9092
log.dirs=/var/lib/kafka-logs
num.partitions=3
offsets.topic.replication.factor=1

重启 Kafka:

sudo -u kafka /opt/kafka/bin/kafka-server-stop.sh
sudo -u kafka nohup /opt/kafka/bin/kafka-server-start.sh \
/opt/kafka/config/server.properties > kafka.log 2>&1 &

六、使用 systemd 管理 Kafka(推荐)

1. Zookeeper service

sudo vim /etc/systemd/system/zookeeper.service
[Unit]
Description=Zookeeper
After=network.target

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

[Install]
WantedBy=multi-user.target

2. Kafka service

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

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

[Install]
WantedBy=multi-user.target

3. 启动并设置开机自启

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

七、KRaft 模式(无 Zookeeper,推荐新项目)

Kafka 3.x 支持 KRaft

1. 生成 Cluster ID

/opt/kafka/bin/kafka-storage.sh random-uuid

2. 格式化存储

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

3. 启动

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

✅ 不再需要 Zookeeper


八、常见问题

问题 解决
9092 端口无法访问 检查 advertised.listeners
内存不足 修改 kafka-server-start.sh-Xmx
systemd 启动失败 查看 journalctl -u kafka

九、你接下来可能需要

  • Kafka 集群部署
  • Kafka + SASL / SSL
  • Kafka Connect
  • Kafka + Debian + Docker
  • 生产环境参数调优

如果你愿意,可以告诉我: ✅ 单节点还是集群?
是否用 Docker?
Debian 版本?

我可以给你 定制部署方案

0