温馨提示×

如何设置Debian Kafka

小樊
35
2026-07-11 15:34:39
栏目: 智能运维

下面给你一份在 Debian 系统上安装和配置 Kafka 的完整指南,适用于 Debian 11 / 12,也基本适用于 Ubuntu。


一、环境准备

1. 更新系统

sudo apt update && sudo apt upgrade -y

2. 安装 Java(Kafka 依赖 JVM)

Kafka 需要 Java 8 或 Java 11+

sudo apt install openjdk-11-jdk -y

验证:

java -version

二、下载并安装 Kafka

1. 创建安装目录

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

2. 下载 Kafka(推荐 3.x 稳定版)

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

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

3. 解压

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

三、配置 Kafka

1. Zookeeper 配置(Kafka 3.x 仍可用)

编辑:

nano config/zookeeper.properties

常用配置:

dataDir=/var/lib/zookeeper
clientPort=2181
maxClientCnxns=0

2. Kafka 服务配置

编辑:

nano config/server.properties

关键配置项:

broker.id=0
listeners=PLAINTEXT://localhost:9092
log.dirs=/var/lib/kafka-logs
num.partitions=1
zookeeper.connect=localhost:2181

如果是生产环境 / 远程访问,需要修改 listenersadvertised.listeners


四、创建数据目录

sudo mkdir -p /var/lib/zookeeper
sudo mkdir -p /var/lib/kafka-logs

五、启动 Kafka(手动方式)

1. 启动 Zookeeper

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

2. 启动 Kafka

新开一个终端:

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

六、测试 Kafka 是否正常运行

1. 创建 Topic

bin/kafka-topics.sh --create \
--topic test-topic \
--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-topic \
--bootstrap-server localhost:9092

4. 消费消息

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

七、配置为 systemd 服务(推荐)

1. Zookeeper service

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

[Service]
Type=simple
User=root
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 nano /etc/systemd/system/kafka.service
[Unit]
Description=Apache Kafka
After=zookeeper.service

[Service]
Type=simple
User=root
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 start zookeeper
sudo systemctl start kafka

sudo systemctl enable zookeeper
sudo systemctl enable kafka

八、常见问题

1. Kafka 启动慢

java -version

确保不是 OpenJDK 32 位或内存不足

2. 端口被占用

ss -lntp | grep 9092

3. 远程无法连接

检查:

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

九、Kafka 3.x 新特性(可选)

如果你不想用 Zookeeper,可以使用 KRaft 模式(无 Zookeeper):

bin/kafka-storage.sh format \
  --config config/kraft/server.properties \
  --cluster-id $(uuidgen)

我可以单独给你 KRaft 模式完整配置


如果你愿意,可以告诉我:

  • ✅ 是 本地开发 还是 生产环境
  • ✅ 是否需要 集群
  • ✅ 是否使用 Docker / 云服务器

我可以给你更精确的配置方案。

0