描述:数据刚入队列,一切正常,过一段时间以后,再去消费,就报此异常
分析:kafka数据同步异常
关闭服务:./bin/kafka-server-stop.sh
启动服务: nohup bin/kafka-server-start.sh config/server.properties > kafka.log &
1 其中一台服务无法启动 报错:Corrupt index found 有索引损坏
因为数据不大,进入数据目录,删除索引
find . -name '*.index' -type f -print -exec rm -rf {} \;
参考:
https://blog.youkuaiyun.com/jsky_studio/article/details/42012561
2 再次启动,报NotLeaderForPartitionException 异常
搜索配置发现少了一些配置
advertised.port=9092
zookeeper.session.timeout.ms=1000000
参考:
https://blog.youkuaiyun.com/jiecxy/article/details/53369173
3 重启服务,新建topic没有出现Unexpected exception,老的topic还是有这个问题
只能增加配置
delete.topic.enable=true
分析:kafka数据同步异常
关闭服务:./bin/kafka-server-stop.sh
启动服务: nohup bin/kafka-server-start.sh config/server.properties > kafka.log &
1 其中一台服务无法启动 报错:Corrupt index found 有索引损坏
因为数据不大,进入数据目录,删除索引
find . -name '*.index' -type f -print -exec rm -rf {} \;
参考:
https://blog.youkuaiyun.com/jsky_studio/article/details/42012561
2 再次启动,报NotLeaderForPartitionException 异常
搜索配置发现少了一些配置
advertised.port=9092
zookeeper.session.timeout.ms=1000000
参考:
https://blog.youkuaiyun.com/jiecxy/article/details/53369173
3 重启服务,新建topic没有出现Unexpected exception,老的topic还是有这个问题
只能增加配置
delete.topic.enable=true
重启服务,删除旧的topic
----------------------------------------------------------------------------------
一切配置完成,都没有问题,刚开始,数据正常,测了两天,一般都是数据刚入队列时候正常,过一段时间,队列无法消费,最明显的表现是过了一晚,队列必然失效,修改配置,问题还是没有解决,突然一天,查看kafka的输出日志的时候发现,服务器上的日志会被定期清空!
再看看kafka的文件存储机制:https://www.cnblogs.com/jun1019/p/6256514.html
数据会以.log的形式存储,落地数据定期被强势清空,不报错才怪!泪奔.
借此,也解决了我一个困惑,以前配置的kafka落地的数据和服务器的日志总是会被输入同一目录,还以为正常,借此才知道,是因为我的服务器数据存储目录和log4j的日志目录配成一样的了造成的.