温馨提示×

怎么在Debian部署Kafka

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

下面给你一个在 Debian(10/11/等)上部署 Apache Kafka 的完整实操流程,适合单机/开发环境,也标注了生产环境需要注意的点。


一、环境准备

1. 系统要求

  • Debian 10 / 11 / 12
  • 内存 ≥ 4GB(生产建议 ≥ 8GB)
  • 磁盘空间 ≥ 20GB
  • Java 8 或 Java 11(推荐 Java 11)

2. 安装 Java

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

验证:

java -version

二、创建 Kafka 用户(推荐)

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

后续操作可用 kafka 用户执行,或继续用 root 也行。


三、下载并安装 Kafka

1. 下载 Kafka

去官网查看最新版本:https://kafka.apache.org/downloads

示例(Kafka 3.6.1):

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 /opt/kafka

四、配置 Kafka

1. Kafka 目录结构

/opt/kafka
 ├── config
 ├── bin
 ├── logs
 └── libs

2. 修改配置文件

编辑:

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

常见修改项(单机示例):

broker.id=0
listeners=PLAINTEXT://localhost:9092
log.dirs=/opt/kafka/logs
num.partitions=1
offsets.topic.replication.factor=1
zookeeper.connect=localhost:2181

Kafka 3.x 以后可不用 Zookeeper(KRaft 模式)
如果你要 去 Zookeeper,告诉我,我可以单独给你 KRaft 部署方案。


五、启动 Zookeeper(Kafka 自带)

cd /opt/kafka
bin/zookeeper-server-start.sh -daemon config/zookeeper.properties

检查:

netstat -tunlp | grep 2181

六、启动 Kafka

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

检查:

netstat -tunlp | grep 9092

查看日志:

tail -f logs/server.log

七、测试 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

输入内容后回车。

4. 消费消息

新开一个终端:

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

八、设置开机自启(systemd,推荐)

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
sudo systemctl enable kafka
sudo systemctl start zookeeper
sudo systemctl start kafka

九、生产环境建议(重要)

不要使用默认配置
✅ 修改:

  • log.retention.hours
  • num.network.threads
  • num.io.threads
  • JVM 堆大小(KAFKA_HEAP_OPTS

✅ 使用:

  • 多 broker
  • 多磁盘
  • 外网访问时配置 advertised.listeners
  • KRaft 替代 Zookeeper(新集群)

十、常见问题

1. Kafka 启动慢

  • 检查 /opt/kafka/logs
  • Java 版本是否正确

2. 9092 连不上

listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://<服务器IP>:9092

如果你需要:

  • KRaft 模式(无 Zookeeper)
  • 多节点集群
  • Docker / Docker Compose
  • Kafka + Spring Boot
  • 生产级参数调优

直接告诉我你的使用场景,我可以给你定制方案。

0