在 Debian 系统上启动 Apache Kafka,通常分为 手动启动 和 作为系统服务(systemd)启动 两种方式。下面按常见场景详细说明。
Kafka 需要 Java 8 及以上版本:
sudo apt update
sudo apt install openjdk-17-jdk -y
验证:
java -version
以 Kafka 3.x 为例:
wget https://downloads.apache.org/kafka/3.6.1/kafka_2.13-3.6.1.tgz
tar -xzf kafka_2.13-3.6.1.tgz
cd kafka_2.13-3.6.1
(2.13 是 Scala 版本,不影响使用)
Kafka 依赖 Zookeeper(或 KRaft 模式,见后文)。
bin/zookeeper-server-start.sh config/zookeeper.properties
默认端口:
2181
新开一个终端:
bin/kafka-server-start.sh config/server.properties
看到类似日志说明启动成功:
[KafkaServer id=0] started
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 &
sudo nano /etc/systemd/system/zookeeper.service
内容:
[Unit]
Description=Apache Zookeeper
After=network.target
[Service]
Type=simple
User=root
ExecStart=/opt/kafka/kafka_2.13-3.6.1/bin/zookeeper-server-start.sh /opt/kafka/kafka_2.13-3.6.1/config/zookeeper.properties
ExecStop=/opt/kafka/kafka_2.13-3.6.1/bin/zookeeper-server-stop.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
sudo nano /etc/systemd/system/kafka.service
[Unit]
Description=Apache Kafka
After=zookeeper.service
[Service]
Type=simple
User=root
ExecStart=/opt/kafka/kafka_2.13-3.6.1/bin/kafka-server-start.sh /opt/kafka/kafka_2.13-3.6.1/config/server.properties
ExecStop=/opt/kafka/kafka_2.13-3.6.1/bin/kafka-server-stop.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
⚠️ 注意把路径换成你的实际 Kafka 路径
sudo systemctl daemon-reload
sudo systemctl start zookeeper
sudo systemctl start kafka
开机自启:
sudo systemctl enable zookeeper
sudo systemctl enable kafka
查看状态:
systemctl status kafka
如果你不想用 Zookeeper:
bin/kafka-storage.sh random-uuid
bin/kafka-storage.sh format -t <UUID> -c config/kraft/server.properties
bin/kafka-server-start.sh config/kraft/server.properties
bin/kafka-topics.sh --bootstrap-server localhost:9092 --list
或:
ss -lntp | grep 9092
lsof -i:9092
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
如果你愿意,我可以:
只要告诉我你的 Kafka 版本和使用场景即可。