Linux 下 Kafka 报错的原因非常多,不能仅凭“报错”两个字定位问题。下面我按常见报错类型 + 原因 + 排查方法给你系统梳理一下,你可以对照自己的情况。
Connection refused典型日志
java.net.ConnectException: Connection refused
常见原因
listeners / advertised.listeners 配置错误排查
# 查看进程
jps | grep Kafka
# 查看端口
netstat -tunlp | grep 9092
# 测试连通
telnet localhost 9092
✅ 重点检查:
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://你的IP:9092
Leader not available典型日志
org.apache.kafka.common.errors.LeaderNotAvailableException
原因
解决
kafka-topics.sh --describe --topic xxx --bootstrap-server localhost:9092
如果 Leader 是 -1:
kafka-topics.sh --alter --topic xxx \
--partitions 3 --replication-factor 1 \
--bootstrap-server localhost:9092
Topic or partition error报错示例
UnknownTopicOrPartitionException
原因
检查
auto.create.topics.enable=true
或手动创建:
kafka-topics.sh --create \
--topic test \
--partitions 3 \
--replication-factor 1 \
--bootstrap-server localhost:9092
Session expired
KeeperErrorCode = NoNode
原因
排查
zkServer.sh status
报错
Failed to acquire lock on file
Permission denied
原因
检查
df -h
ls -l /data/kafka-logs
✅ 修复:
chown -R kafka:kafka /data/kafka-logs
✅ Kafka 是否启动
✅ Zookeeper(老版本)是否启动
✅ advertised.listeners 是否写 IP
✅ 防火墙是否放行 9092
✅ 磁盘是否满
✅ 配置文件是否改错
你可以直接把 完整报错日志 或以下信息发我:
我可以直接帮你精准定位并给出修改方案。