下面按在 Debian(如 Debian 11/12)上部署 Apache Kafka的常见场景,给你一套从安装到基础配置的说明。如果你指的是 Debian 自带的 kafka 包 或 Docker 中的 Kafka,我也可以单独说。
Kafka 需要 JVM:
sudo apt update
sudo apt install -y openjdk-17-jdk
java -version
Kafka 3.x 推荐 Java 11 / 17
sudo useradd -m -s /bin/bash kafka
sudo su - kafka
cd /opt
sudo wget https://downloads.apache.org/kafka/3.7.0/kafka_2.13-3.7.0.tgz
sudo tar -xzf kafka_2.13-3.7.0.tgz
sudo mv kafka_2.13-3.7.0 /opt/kafka
Kafka 主要配置文件在:
/opt/kafka/config/
├── server.properties # Broker 配置(最重要)
├── zookeeper.properties # ZooKeeper 配置
├── producer.properties
└── consumer.properties
server.propertiessudo nano /opt/kafka/config/server.properties
# Broker 唯一 ID
broker.id=0
# 监听地址(重要)
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://你的服务器IP:9092
# 日志(消息数据存储)
log.dirs=/tmp/kafka-logs
# ZooKeeper(Kafka 3.0 前需要)
zookeeper.connect=localhost:2181
# 分区与副本
num.partitions=1
default.replication.factor=1
# 自动创建 topic
auto.create.topics.enable=true
⚠️ 如果是云服务器:
advertised.listeners 必须写外部可访问 IP9092 和 2181sudo nano /opt/kafka/config/zookeeper.properties
dataDir=/tmp/zookeeper
clientPort=2181
启动 ZooKeeper:
/opt/kafka/bin/zookeeper-server-start.sh -daemon /opt/kafka/config/zookeeper.properties
/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties
查看日志:
tail -f /opt/kafka/logs/server.log
如果你用的是 Kafka 3.3+,推荐 KRaft 模式:
# 生成集群 ID
/opt/kafka/bin/kafka-storage.sh random-uuid
# 格式化
/opt/kafka/bin/kafka-storage.sh format \
-t <cluster-id> \
-c /opt/kafka/config/kraft/server.properties
# 启动
/opt/kafka/bin/kafka-server-start.sh \
-daemon /opt/kafka/config/kraft/server.properties
# 创建 topic
kafka-topics.sh --create \
--topic test \
--bootstrap-server localhost:9092 \
--partitions 1 --replication-factor 1
# 生产消息
kafka-console-producer.sh \
--topic test --bootstrap-server localhost:9092
# 消费消息
kafka-console-consumer.sh \
--topic test --bootstrap-server localhost:9092 --from-beginning
sudo nano /etc/systemd/system/kafka.service
[Unit]
Description=Apache Kafka
After=network.target
[Service]
User=kafka
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
ExecStop=/opt/kafka/bin/kafka-server-stop.sh
[Install]
WantedBy=multi-user.target
sudo systemctl enable kafka
sudo systemctl start kafka
✅ advertised.listeners 配错 → 客户端连不上
✅ 防火墙没开 9092
✅ 用 root 跑 Kafka(不推荐)
✅ 磁盘满了导致 broker 宕机
如果你愿意,可以告诉我:
我可以直接给你完整可复制的配置文件。