在 Linux 上停止 Kafka,通常先停 Kafka,再停 Zookeeper(如果你用的是依赖 ZK 的版本)。下面按常见场景说明。
cd /path/to/kafka
bin/kafka-server-stop.sh
如果 kafka-server-stop.sh 无效(某些版本需要 PID):
# 查找 Kafka 进程
ps -ef | grep kafka
# 优雅停止(不要用 -9)
kill -TERM <kafka_pid>
✅ Kafka 收到
SIGTERM后会:
- 停止接收请求
- 刷写日志
- 关闭网络线程
- 正常退出
bin/zookeeper-server-stop.sh
或:
kill -TERM <zk_pid>
如果你是系统服务方式安装的:
sudo systemctl stop kafka
sudo systemctl stop zookeeper
查看状态:
systemctl status kafka
systemctl status zookeeper
开机不自启:
sudo systemctl disable kafka
sudo systemctl disable zookeeper
bin/kafka-server-stop.sh
或:
kill -TERM <kafka_pid>
kill -9 <pid>
❌ 风险:
ps -ef | grep kafka
netstat -tunlp | grep 9092
或:
ss -ltnp | grep 9092
✅ 正确顺序:
Kafka → Zookeeper
❌ 错误顺序:
Zookeeper → Kafka(可能导致 broker 异常)
如果你愿意,可以告诉我:
我可以给你最合适、最安全的停机方案。