我们将主题保留设置为7天(168小时) . 当 生产环境 者发送消息时,消息实时消耗 . 一切都按预期工作 . 但是最近在 生产环境 服务器上,作为OS补丁的一部分,Devops意外地将时区从PST改为EST .
在Kafka服务器重新启动之后,我们看到消费者消耗的旧消息很少(不是全部,而是随机) . 我们要求Devops将其更改回PST并重新启动 . 同样,旧消息也在本周末重新出现 .
我们在较低的环境(Dev,QA,Stage等)中没有看到这个问题 .
Kafka 版:kafka_2.12-0.11.0.2
任何帮助都非常感谢 .
添加更多信息...最近我们的CentOS有一个补丁更新,不知何故,管理员从PST时区更改为EST并启动Kafka服务器...之后我们的消费者开始看到来自偏移0的消息 . 调试后,我发现时区变化和管理员在4天后从EST更改回PST . 我们的消息制作者在定期更改时区之前和之后发送消息 . 在从EST返回到PST的时区后,Kafka服务器重新启动,我看到了轰鸣声警告 .
这个日志发生在我们从EST切换回PST时:( server.log)[2018-06-13 18:36:34,430] WARN由于需求失败而发现损坏的索引文件:找到损坏的索引,索引文件(/ 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)
经过3天的时区更改从EST返回到PST后,我们重新启动了消费者,并开始再次看到偏移量为0的消费者消息 .
1 回答
我想这是因为你会在
Commit
新的偏移之前重启程序 .从this article,我认为这是非常有帮助的 .