在 Linux 上停止 Kafka(通常指 Apache Kafka),一般有两种常见场景:正常停止 和 强制停止。下面按推荐顺序说明。
如果你是通过 systemd 安装的 Kafka:
sudo systemctl stop kafka
查看状态:
sudo systemctl status kafka
如果是直接用 Kafka 自带脚本启动的:
cd /opt/kafka # Kafka 安装目录
bin/kafka-server-stop.sh
或者(老版本):
bin/kafka-server-stop.sh
如果脚本没生效,可以用:
kill -TERM $(ps -ef | grep kafka | grep -v grep | awk '{print $2}')
✅ 不要用 -9,否则可能丢数据或无法优雅关闭。
Kafka 依赖 Zookeeper(旧版本),一定要先停 Kafka,再停 Zookeeper。
sudo systemctl stop zookeeper
或手动:
bin/zookeeper-server-stop.sh
仅在 Kafka 卡死或无响应时使用:
ps -ef | grep kafka
kill -9 <PID>
⚠️ 风险:
ps -ef | grep kafka
或:
ss -lntp | grep 9092
如果是 Kafka 3.x + KRaft 模式:
停止方式相同:
bin/kafka-server-stop.sh
或:
kill -TERM <PID>
1. 停止 Kafka Broker
2. 停止 Zookeeper(如有)
启动顺序是反过来的:
Zookeeper → Kafka
如果你不确定:
可以把下面命令的输出发我,我可以给你精确命令。