下面给你一份**在 Debian 上配置 Kafka(单节点可用,生产可扩展)**的实用步骤。以 Kafka 3.x + Kafka 自带的 Zookeeper 为例(目前最常用、最稳妥)。
Kafka 需要 JDK 8 或以上(推荐 JDK 17)
sudo apt update
sudo apt install -y openjdk-17-jdk
验证:
java -version
sudo useradd -m -s /bin/bash kafka
sudo su - kafka
以下操作建议都在
kafka用户下进行
cd ~
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 kafka
cd kafka
Kafka 3.x 仍可用自带的 Zookeeper(简化配置)
vim config/zookeeper.properties
常用配置:
dataDir=/home/kafka/zookeeper
clientPort=2181
maxClientCnxns=0
创建目录:
mkdir -p /home/kafka/zookeeper
vim config/server.properties
最关键的几项(单机示例):
broker.id=0
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://你的服务器IP:9092
log.dirs=/home/kafka/kafka-logs
num.partitions=3
default.replication.factor=1
zookeeper.connect=localhost:2181
创建日志目录:
mkdir -p /home/kafka/kafka-logs
⚠️
advertised.listeners很重要
本机测试可写localhost
远程访问必须写服务器 IP 或域名
nohup bin/zookeeper-server-start.sh config/zookeeper.properties > zookeeper.log 2>&1 &
nohup bin/kafka-server-start.sh config/server.properties > kafka.log 2>&1 &
查看是否启动成功:
tail -f kafka.log
bin/kafka-topics.sh --create \
--topic test \
--bootstrap-server localhost:9092 \
--partitions 1 \
--replication-factor 1
bin/kafka-console-producer.sh \
--topic test \
--bootstrap-server localhost:9092
bin/kafka-console-consumer.sh \
--topic test \
--bootstrap-server localhost:9092 \
--from-beginning
sudo vim /etc/systemd/system/zookeeper.service
[Unit]
Description=Zookeeper
After=network.target
[Service]
User=kafka
ExecStart=/home/kafka/kafka/bin/zookeeper-server-start.sh /home/kafka/kafka/config/zookeeper.properties
ExecStop=/home/kafka/kafka/bin/zookeeper-server-stop.sh
[Install]
WantedBy=multi-user.target
sudo vim /etc/systemd/system/kafka.service
[Unit]
Description=Kafka
After=zookeeper.service
[Service]
User=kafka
ExecStart=/home/kafka/kafka/bin/kafka-server-start.sh /home/kafka/kafka/config/server.properties
ExecStop=/home/kafka/kafka/bin/kafka-server-stop.sh
[Install]
WantedBy=multi-user.target
启用:
sudo systemctl daemon-reload
sudo systemctl enable zookeeper
sudo systemctl enable kafka
sudo systemctl start zookeeper
sudo systemctl start kafka
✅ 使用 Kafka Raft(KRaft) 替代 Zookeeper(Kafka 3.3+ 已稳定)
✅ 多 broker 集群(broker.id 唯一)
✅ 配置:
log.retention.hoursmessage.max.bytesnum.network.threads如果你愿意,我可以:
你现在是 学习 / 测试 / 生产 用的?