温馨提示×

Debian下Kafka怎么设置

小樊
32
2026-07-23 15:53:46
栏目: 智能运维

Debian 下安装和配置 Apache Kafka,一般流程如下(以 Kafka 3.x + Java 17 为例,适用于 Debian 11/12)。


一、准备环境

1. 安装 Java

Kafka 需要 Java 运行环境。

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

验证:

java -version

二、下载并安装 Kafka

1. 创建安装目录

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

2. 下载 Kafka(以 3.6.1 为例)

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

2.13 是 Scala 版本,不影响使用

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. Kafka 目录结构

/opt/kafka
├── config
│   ├── server.properties
│   ├── zookeeper.properties
├── bin

四、配置 Zookeeper(Kafka 依赖)

⚠️ Kafka 3.x 已支持 KRaft(无 Zookeeper),但 新手建议先用 Zookeeper

1. 编辑 Zookeeper 配置

sudo nano /opt/kafka/config/zookeeper.properties

示例配置:

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

创建数据目录:

sudo mkdir -p /var/lib/zookeeper

五、配置 Kafka Server

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

关键配置项(按需修改):

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

创建日志目录:

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

六、启动 Kafka

1. 启动 Zookeeper

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

后台运行(推荐):

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

2. 启动 Kafka

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

后台运行:

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

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

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

1. Zookeeper systemd

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

[Service]
Type=simple
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 systemd

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

[Service]
Type=simple
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

九、常见问题

1. Kafka 启动慢

  • 检查 Java 版本
  • 确认 listeners 不是 localhost 被误用(远程访问需改 IP)

2. 端口占用

ss -lntp | grep 9092

十、进阶(可选)

  • ✅ 使用 KRaft 模式(无 Zookeeper)
  • ✅ 多 broker 集群
  • ✅ 开启 SASL / SSL
  • ✅ 与 Spring Boot / Python / Go 集成

如果你告诉我:

  • 单机 / 集群
  • 是否 生产环境
  • 是否需要 远程访问 / 安全认证

我可以给你一份 更精确的 Debian + Kafka 生产级配置方案

0