java程序消费Kafka部分分区无法消费

林开心 发表于: 2019-08-01   最后更新时间: 2019-08-01 10:11:25   5,836 游览
  1. 基于Storm框架消费Kafka,一段时间后,有三个分区无法正常消费。
    org.apache.kafka.common.KafkaException: Received exception when fetching the next record from SESSION-RECORD-COMPLETED-LOG-5. If needed, please seek past the record to continue consumption.
    
    Caused by: org.apache.kafka.common.KafkaException: Record batch for partition SESSION-RECORD-COMPLETED-LOG-5 at offset 1926115083 is invalid, cause: Record is corrupt (stored crc = 2155685957, computed crc = 1377443207
    
    程序已经正常运行好几天,早上突然发现这个问题,重启任务后正常消费。
    请问下这是什么原因造成的呢?
发表于 2019-08-01

kafka什么版本?
0.10.1.1版本有这个问题。

林开心 -> 半兽人 5年前

kafka_2.11-1.0.0 这个版本的

半兽人 -> 林开心 5年前

stored crc = 2155685957, computed crc = 1377443207
你看看消息保留的时间,offset落后太多,没来得及消费但是消息已经过期清理掉了。

林开心 -> 半兽人 5年前

我当时看lag有十几万(数据量比较小一秒不到100条),三个分区的话合起来是三十几万,Consumer Instance Owner都是属于一台机器的。

半兽人 -> 林开心 5年前

调整下过期时间吧

林开心 -> 半兽人 5年前

log.retention.hours=168
log.retention.bytes=5368709120
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000

这是我日志删除的配置。

半兽人 -> 林开心 5年前

你现在默认保存7天。你算下你的消费能力 调整一下

林开心 -> 半兽人 5年前

嗯嗯,好的。
我有一个任务消费一秒十几万的也没出现这个问题,反倒是量小的出现了。

半兽人 -> 林开心 5年前

就是因为你那个消费太慢,导致消息过期了。

你的答案

查看kafka相关的其他问题或提一个您自己的问题