端口冲突
server.properties
中listeners
和advertised.listeners
配置的端口(默认9092),使用netstat -tuln
确认端口是否被占用,修改为未使用的端口并重启服务。配置文件路径或权限错误
server.properties
路径正确,使用chmod -R 755
赋予Kafka用户(如kafka
)对配置文件和日志目录的读写权限。ZooKeeper连接失败
systemctl status zookeeper
),确认zookeeper.connect
参数指向正确的ZooKeeper地址和端口,确保防火墙允许ZooKeeper端口(默认2181)。节点间通信异常
advertised.listeners
是否配置为节点实际IP和端口,确保服务器间网络互通(ping
测试),关闭防火墙或放行Kafka相关端口。跨机房同步延迟高
replica.socket.timeout.ms
和replica.fetch.wait.max.ms
参数,优化网络带宽。消息积压或延迟高
num.partitions
),调整fetch.min.bytes
和fetch.max.wait.ms
优化拉取效率,升级Broker硬件或调整JVM堆内存(KAFKA_HEAP_OPTS
)。磁盘空间不足
log.retention.hours
缩短日志保留时间,或通过log.dirs
指定多个存储目录分散压力,定期清理旧日志。文件权限不足
chown -R kafka:kafka /path/to/kafka/logs
和chown -R kafka:kafka /path/to/kafka/data
赋予Kafka用户权限。未启用安全认证
server.properties
中security.inter.broker.protocol
为SASL_PLAINTEXT
,并设置listener.name.sasl_plaintext.scram-sha-256
等参数。版本兼容性问题
日志分析困难
log4j.appender.rolling.MaxFileSize
),定期清理旧日志,使用kafka-log-dirs
工具监控日志状态。kafka-topics.sh
(查看Topic状态)、kafka-consumer-groups.sh
(监控消费组滞后)、jps
(检查进程)。提示:修改配置前建议备份原文件,优先在测试环境验证,避免直接修改生产环境参数。如问题持续,可通过Kafka官方社区或日志中的异常堆栈进一步定位。