下面以 Debian 系统 为例,给你一份 Kafka 基础配置与启动流程,适合单机或简单集群使用。
Kafka 需要 Java 8 及以上(推荐 Java 11 / 17)。
sudo apt update
sudo apt install openjdk-17-jdk -y
验证:
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
/opt/kafka
├── config # 配置文件
│ ├── server.properties
│ ├── zookeeper.properties
├── bin # 启动脚本
Kafka 3.x 仍然默认依赖 Zookeeper(除非你用 KRaft 模式)
sudo nano /opt/kafka/config/zookeeper.properties
示例配置:
dataDir=/var/lib/zookeeper
clientPort=2181
maxClientCnxns=0
创建数据目录:
sudo mkdir -p /var/lib/zookeeper
sudo nano /opt/kafka/config/server.properties
关键配置(单机示例):
broker.id=0
listeners=PLAINTEXT://localhost:9092
log.dirs=/var/lib/kafka-logs
zookeeper.connect=localhost:2181
num.partitions=1
offsets.topic.replication.factor=1
如果是 多机集群,需要:
broker.id 不同listeners 改为实际 IPzookeeper.connect 写所有 ZK 节点创建日志目录:
sudo mkdir -p /var/lib/kafka-logs
cd /opt/kafka
bin/zookeeper-server-start.sh config/zookeeper.properties
后台运行:
bin/zookeeper-server-start.sh -daemon config/zookeeper.properties
bin/kafka-server-start.sh config/server.properties
后台运行:
bin/kafka-server-start.sh -daemon config/server.properties
jps
应看到:
QuorumPeerMain
Kafka
bin/kafka-topics.sh \
--create \
--topic test \
--bootstrap-server localhost:9092 \
--partitions 1 \
--replication-factor 1
查看 Topic:
bin/kafka-topics.sh --list --bootstrap-server localhost:9092
生产者:
bin/kafka-console-producer.sh \
--topic test \
--bootstrap-server localhost:9092
消费者:
bin/kafka-console-consumer.sh \
--topic test \
--from-beginning \
--bootstrap-server localhost:9092
sudo nano /etc/systemd/system/zookeeper.service
[Unit]
Description=Zookeeper
After=network.target
[Service]
Type=simple
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 nano /etc/systemd/system/kafka.service
[Unit]
Description=Kafka
After=zookeeper.service
[Service]
Type=simple
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 systemctl daemon-reload
sudo systemctl enable zookeeper
sudo systemctl enable kafka
sudo systemctl start zookeeper
sudo systemctl start kafka
检查:
/opt/kafka/logs/server.log
ss -lntp | grep 9092
如果你告诉我:
我可以给你更精确的配置方案。