kafka问题总结

一、连接超时问题

问题描述

2018-12-11 17:14:04.956 ERROR 19888 --- [nio-8080-exec-4] o.s.k.support.LoggingProducerListener    : Exception thrown when sending a message with key='null' and payload='{"houseId":24,"operation":"index","retry":0}' to topic house_build:

org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms.

在网上找了下,总结的情况大概有:

可能是kafka配置没配好,kafka配置没有对外开放host、port

端口号不统一

没有配置/etc/hosts

版本不兼容(网上有版本说值支持0.11.x.x的版本)

我的是在端口号那里解决了,把advertised.listeners那里的端口号打开,然后在windows上用telnet命令远程连接(出现ip框表示连接成功,当然需要首先打开telent服务)

二、 启动kafka时报错

FATAL Fatal error during KafkaServerStable startup. Prepare to shutdown (kafka.server.KafkaServerStartable) java.io.FileNotFoundException: /tmp/kafka-logs/.lock (Permission denied) 

原因:

网上也有很多说法,有的说是因为权限,有的说是因为占用,我更倾向于被占用了,因为是重启的时候的问题,应该是关闭的时候没有杀死进程

解决办法:

直接删除kafka的日志文件,同时杀死该进程

rm -rf /tmp/kafka-logs(文件为日志文件,可以在server.properties中修改位置)

ps ef | grep kafka

kill -9 进程

最后重启kafka

三、基于Kafka做二次开发时,生产者可以产生消息,通过kafka命令行也可以消费信息,但是通过代码无法获取消息,查看kakfa日志有如下错误信息

ERROR [KafkaApi-0] Number of alive brokers '0' does not meet the required replication factor '1' for。。。。。

问题原因:

此类问题在测试环境中容易出现,由于节点资源限制,brokers实例比offset topic副本数量少时出现此问题。

解决方案:

在server.properties中增加brokers实例数或者减少offset topic副本数量,配置项名称:offsets.topic.replication.factor =1(需要重启kafka服务)

猜你喜欢

转载自blog.csdn.net/qq_41618510/article/details/84983847
今日推荐