下面用尽量简单、可落地的步骤,教你在 Debian(新手向) 上从零配置 Kafka。假设你用的是 Debian 11/12,并且只是本地或测试环境使用。
sudo apt update
sudo apt upgrade -y
Kafka 需要 JVM,推荐 OpenJDK 17(或 11)
sudo apt install -y openjdk-17-jdk
验证:
java -version
Kafka 官方只提供二进制包,不需要 apt 安装
sudo mkdir -p /opt/kafka
cd /opt/kafka
wget https://downloads.apache.org/kafka/3.7.0/kafka_2.13-3.7.0.tgz
tar -xzf kafka_2.13-3.7.0.tgz
mv kafka_2.13-3.7.0/* .
rm -rf kafka_2.13-3.7.0
Kafka 新版本可不用 Zookeeper(KRaft),但新手建议先用 Zookeeper 模式
bin/zookeeper-server-start.sh config/zookeeper.properties
终端不要关,另开一个 SSH 窗口
bin/kafka-server-start.sh config/server.properties
看到 started (kafka.server.KafkaServer) 就成功了
bin/kafka-topics.sh --create \
--topic test \
--bootstrap-server localhost:9092 \
--partitions 1 \
--replication-factor 1
bin/kafka-topics.sh --list --bootstrap-server localhost:9092
bin/kafka-console-producer.sh \
--topic test \
--bootstrap-server localhost:9092
输入内容回车即可
bin/kafka-console-consumer.sh \
--topic test \
--from-beginning \
--bootstrap-server localhost:9092
编辑:
nano config/server.properties
修改:
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://你的IP:9092
重启 Kafka
sudo nano /etc/systemd/system/zookeeper.service
[Unit]
Description=Zookeeper
After=network.target
[Service]
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
sudo nano /etc/systemd/system/kafka.service
[Unit]
Description=Kafka
After=zookeeper.service
[Service]
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
sudo systemctl daemon-reload
sudo systemctl enable --now zookeeper
sudo systemctl enable --now kafka
✅ 一定要先起 Zookeeper
✅ 防火墙放行 9092
✅ advertised.listeners 配错是最常见问题
✅ 测试环境 replication-factor 只能是 1
如果你愿意,我可以:
你更想学哪一种?