下面按“在 Debian 上从零配置 Kafka”的思路给你一个清晰、可落地的说明,包含 单节点最简配置 和 常见生产向配置要点。
Kafka 依赖 Java(推荐 JDK 8 / 11 / 17,取决于 Kafka 版本)
sudo apt update
sudo apt install -y openjdk-17-jdk
java -version
sudo useradd -m -s /bin/bash kafka
sudo su - kafka
以 Kafka 3.6 为例(你可按需改版本):
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
sudo chown -R kafka:kafka /opt/kafka
/opt/kafka/config/
├── server.properties # Kafka 核心配置
├── zookeeper.properties # Zookeeper(老版本需要)
└── producer.properties / consumer.properties
⚠️ Kafka 3.x 开始支持 KRaft 模式(无 Zookeeper),下面两种都讲。
vi /opt/kafka/config/zookeeper.properties
常用配置:
dataDir=/opt/kafka/data/zookeeper
clientPort=2181
启动:
/opt/kafka/bin/zookeeper-server-start.sh -daemon /opt/kafka/config/zookeeper.properties
vi /opt/kafka/config/server.properties
最小可用配置:
broker.id=0
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://<你的IP>:9092
log.dirs=/opt/kafka/data/kafka-logs
zookeeper.connect=localhost:2181
创建目录:
mkdir -p /opt/kafka/data/kafka-logs
启动 Kafka:
/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties
/opt/kafka/bin/kafka-storage.sh random-uuid
例如:
abc12345-6789-0abc-def0-1234567890ab
vi /opt/kafka/config/kraft/server.properties
示例:
process.roles=broker,controller
node.id=1
controller.quorum.voters=1@localhost:9093
listeners=PLAINTEXT://:9092,CONTROLLER://:9093
advertised.listeners=PLAINTEXT://<IP>:9092
log.dirs=/opt/kafka/data/kraft-logs
/opt/kafka/bin/kafka-storage.sh format \
-t abc12345-6789-0abc-def0-1234567890ab \
-c /opt/kafka/config/kraft/server.properties
/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/kraft/server.properties
/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
示例(KRaft):
sudo vi /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/kraft/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 kafka
num.partitions=3
default.replication.factor=3
min.insync.replicas=2
log.retention.hours=168
log.segment.bytes=1073741824
advertised.listenerslsof -i:9092acks=all如果你愿意,可以告诉我:
我可以直接给你一份 可用配置文件模板。