Kafka v0.11.0.2
Kafka代理在PST时区运行了大约一个月,然后由于操作系统补丁,管理员将时区更改为EST,并且在重新启动后,我们看到了重播消费者消息(消费者偏移量重置为0)。我们要求管理员将时区更改回PST,他们花了3天的时间进行更改。将时区更改回PST之后,在代理重新启动期间,我们看到了以下日志消息(即使对于Topics和__consumer_offsets-> WARN由于需求失败,发现损坏的索引文件:)
由于由于时区更改而重新启动Kafka代理时__consumer_offsets损坏,它真的将使用者偏移量重置为0吗?此消息后,我们再次得到了消息的重播。
警告:由于要求失败而找到了损坏的索引文件:找到了损坏的索引,索引文件 (/app/kafka_2.12-0.11.0.2/data/__consumer_offsets-21/00000000000000002076.index) 具有非零大小,但最后一个偏移量是2076,不大于 基本偏移量2076。}。删除中 /app/kafka_2.12-0.11.0.2/data/__consumer_offsets-21/00000000000000002076.timeindex, /app/kafka_2.12-0.11.0.2/data/__consumer_offsets-21/00000000000000002076.index, 和 /app/kafka_2.12-0.11.0.2/data/__consumer_offsets-21/00000000000000002076.txnindex和重建索引...(kafka.log.Log)
我们如何解决消费者补偿不回到零(0)?
答案 0 :(得分:3)
重新启动经纪人时,我们遇到了类似的问题。事实证明,对我们来说,这是systemd
配置的问题,它等待的时间不够长,无法正确关闭Kafka服务器。
每个代理上有150个主题的350 GB数据,关闭Kafka服务器大约需要8分钟。但是,将systemd配置为仅等待90秒,以使服务器关闭,然后强制关闭服务器。重新启动服务器后,由于索引文件未正确关闭,最终将导致索引文件损坏。解决方法是在TimeoutStopSec=600
systemd配置中设置kafka.service
。
我们在博客文章https://blog.experteer.engineering/kafka-corrupted-index-file-warnings-after-broker-restart.html
中总结了该问题和修复程序答案 1 :(得分:1)
删除索引文件。
此问题基于索引无法匹配日志文件。 这个问题存在很长时间,恢复方法是删除索引文件,它将重新创建。
答案 2 :(得分:0)
我遇到了这个问题,只需删除索引文件并启动kafka:
document.querySelector('meta[name="csrf-token"]')
问题已解决。请注意:此方法会丢失您当前的消息。