在 Debian 上部署 Kafka,通常分为 Kafka 本身配置 和 系统/运行环境配置 两部分。下面按“最小可运行 → 生产建议”来说明。
Kafka 依赖 Java:
sudo apt update
sudo apt install openjdk-17-jdk -y
java -version
Kafka 3.x 推荐 Java 11 / 17
sudo useradd -m -s /bin/bash 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
sudo mv kafka_2.13-3.7.0 /opt/kafka
server.properties(最重要)路径:
/opt/kafka/config/server.properties
broker.id=0
listeners=PLAINTEXT://:9092
log.dirs=/var/lib/kafka/logs
zookeeper.connect=localhost:2181
Kafka 3.3+ 可用 KRaft,可不使用 Zookeeper
zookeeper.propertiesdataDir=/var/lib/zookeeper
clientPort=2181
broker.id=1
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://kafka1.example.com:9092
log.dirs=/data/kafka/logs
num.partitions=3
default.replication.factor=3
min.insync.replicas=2
zookeeper.connect=zk1:2181,zk2:2181,zk3:2181
log.retention.hours=168
log.segment.bytes=1073741824
log.cleaner.enable=true
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
kraft/server.propertiesprocess.roles=broker,controller
node.id=1
controller.quorum.voters=1@kafka1:9093
listeners=PLAINTEXT://:9092,CONTROLLER://:9093
advertised.listeners=PLAINTEXT://kafka1:9092
log.dirs=/data/kafka/logs
bin/kafka-storage.sh format -t <uuid> -c config/kraft/server.properties
[Unit]
Description=Apache Kafka
After=network.target
[Service]
User=kafka
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
Restart=on-failure
[Install]
WantedBy=multi-user.target
| 类别 | 配置项 |
|---|---|
| 基础 | broker.id |
| 网络 | listeners / advertised.listeners |
| 存储 | log.dirs |
| 集群 | zookeeper.connect 或 controller.quorum.voters |
| 可靠性 | replication.factor / min.insync.replicas |
| 运维 | log.retention / systemd |
如果你愿意,我可以:
你现在是 单机测试还是生产集群?