我试图通过ApacheKafka加载数据,并不断出现以下错误:
kafka.common.offsetoutofrangeexception:kafka.log.log$.findrange(log.log)的偏移量1003786超出范围。scala:46)在kafka.log.log.read(log。scala:264)在kafka.server.kafkarequesthandlers.kafka$server$kafkarequesthandlers$$readmessageset(kafkarequesthandlers)。scala:112)在kafka.server.kafkarequesthandlers$$anonfun$2.apply(kafkarequesthandlers。scala:101)在kafka.server.kafkarequesthandlers$$anonfun$2.apply(kafkarequesthandlers。scala:100)在scala.collection.traversablelike$$anonfun$map$1.apply(traversablelike。scala:206)在scala.collection.traversablelike$$anonfun$map$1.apply(traversablelike。scala:206)在scala.collection.indexedseqoptimized$class.foreach(indexedseqoptimized。scala:34)在scala.collection.mutable.arrayops.foreach(arrayops。scala:34)在scala.collection.traversablelike$class.map(traversablelike。scala:206)在scala.collection.mutable.arrayops.map(arrayops。scala:34)在kafka.server.kafkarequesthandlers.handlemultifetchrequest(kafkarequesthandlers。scala:100)在kafka.server.kafkarequesthandlers$$anonfun$handlerfor$3.apply(kafkarequesthandlers。scala:40)在kafka.server.kafkarequesthandlers$$anonfun$handlerfor$3.apply(kafkarequesthandlers。scala:40)在kafka.network.processor.handle(socketserver。scala:296)在kafka.network.processor.read(socketserver。scala:319)在kafka.network.processor.run(socketserver。scala:214)在java.lang.thread.run(线程。java:724)
这个异常是什么意思?我如何修复它?
1条答案
按热度按时间sqougxex1#
OffsetOutOfRangeException
通常表示客户端请求的范围在服务器上不再可用。根据kafka设置中的保留策略,主题日志不再存在时,可能会发生这种情况。
如果您正在使用
SimpleConsumer
您需要在代码中处理OffsetAutoFrange异常。理想情况下,您的使用者应该发出offsetrequest来获取服务器上当前可用的最新/最早的偏移量,然后在fetchrequest中使用它(作为参数)