温馨提示×

linux kafka为何报错

小樊
41
2026-09-17 12:03:52
栏目: 智能运维

Linux 下 Kafka 报错的原因非常多,不能仅凭“报错”两个字定位问题。下面我按常见报错类型 + 原因 + 排查方法给你系统梳理一下,你可以对照自己的情况。


一、最常见几类 Kafka 报错及原因

1️⃣ Connection refused

典型日志

java.net.ConnectException: Connection refused

常见原因

  • Kafka 没启动
  • listeners / advertised.listeners 配置错误
  • 防火墙 / 安全组拦截
  • Zookeeper 未启动(老版本 Kafka)

排查

# 查看进程
jps | grep Kafka

# 查看端口
netstat -tunlp | grep 9092

# 测试连通
telnet localhost 9092

✅ 重点检查:

listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://你的IP:9092

2️⃣ Leader not available

典型日志

org.apache.kafka.common.errors.LeaderNotAvailableException

原因

  • Topic 刚创建,副本未选主
  • broker 宕机
  • 副本数为 1 但 broker 挂了

解决

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

3️⃣ Topic or partition error

报错示例

UnknownTopicOrPartitionException

原因

  • Topic 不存在
  • 自动创建被关闭
  • broker 配置不一致

检查

auto.create.topics.enable=true

或手动创建:

kafka-topics.sh --create \
--topic test \
--partitions 3 \
--replication-factor 1 \
--bootstrap-server localhost:9092

4️⃣ Zookeeper 相关报错(Kafka < 3.0)

Session expired
KeeperErrorCode = NoNode

原因

  • ZK 挂了
  • Kafka 与 ZK 网络不通
  • myid 冲突

排查

zkServer.sh status

5️⃣ 磁盘 / 权限问题

报错

Failed to acquire lock on file
Permission denied

原因

  • log.dirs 目录权限不对
  • 磁盘满

检查

df -h
ls -l /data/kafka-logs

✅ 修复:

chown -R kafka:kafka /data/kafka-logs

二、快速自检清单(90%问题在这)

✅ Kafka 是否启动
✅ Zookeeper(老版本)是否启动
advertised.listeners 是否写 IP
✅ 防火墙是否放行 9092
✅ 磁盘是否满
✅ 配置文件是否改错


三、请贴出具体报错(最关键)

你可以直接把 完整报错日志 或以下信息发我:

  1. Kafka 版本
  2. Linux 发行版
  3. 报错日志(关键 10–20 行)
  4. server.properties 关键配置

我可以直接帮你精准定位并给出修改方案

0