下面给你一份**在 Debian 上部署并配置 Kafka(以官方二进制包为例)**的实用指南,适合新手到生产环境参考。
sudo apt update
sudo apt install -y openjdk-11-jdk
java -version
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
vi /opt/kafka/config/zookeeper.properties
关键参数:
dataDir=/var/lib/zookeeper
clientPort=2181
创建目录:
sudo mkdir -p /var/lib/zookeeper
vi /opt/kafka/config/server.properties
最基础配置(单机)
broker.id=0
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://<服务器IP>:9092
log.dirs=/var/lib/kafka-logs
zookeeper.connect=localhost:2181
创建日志目录:
sudo mkdir -p /var/lib/kafka-logs
⚠️
advertised.listeners必须配置为外部可访问 IP,否则客户端连不上
/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
netstat -tunlp | grep 9092
# 创建 topic
/opt/kafka/bin/kafka-topics.sh --create \
--topic test --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1
# 生产消息
/opt/kafka/bin/kafka-console-producer.sh \
--topic test --bootstrap-server localhost:9092
# 消费消息
/opt/kafka/bin/kafka-console-consumer.sh \
--topic test --from-beginning --bootstrap-server localhost:9092
sudo vi /etc/systemd/system/kafka.service
[Unit]
Description=Apache Kafka
After=network.target 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
sudo vi /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
sudo systemctl daemon-reload
sudo systemctl enable zookeeper kafka
sudo systemctl start zookeeper kafka
如果你用的是 Kafka 3.x+,推荐 KRaft:
/opt/kafka/bin/kafka-storage.sh random-uuid
/opt/kafka/bin/kafka-storage.sh format \
-t <UUID> -c /opt/kafka/config/kraft/server.properties
/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/kraft/server.properties
❌ 客户端连不上
✅ advertised.listeners 配错
❌ topic 创建失败
✅ log.dirs 权限不足
❌ 启动慢
✅ 检查 Java 版本 & 主机名解析
如果你需要:
可以直接告诉我你的使用场景。