如果我将 log.retantion 设置为 24 小时,则会在 1.1.24 15:30 发布一条消息。 然后服务器宕机了25小时,在2.1.24 16:30重新启动,消息会在服务器启动后立即删除还是会再次等待24H,在3.1.24 16:30删除?
这个问题也与使用早于配置的 log.retantion 的消息恢复 kafka 的旧备份相关,它们能够被使用吗?
Kafka 消息删除基于消息/事件附加的时间戳和保留期。因此,在您的情况下,由于保留期为 24 小时,并且服务器停机了近 25 小时,因此一旦服务器启动,它将立即删除。
在另一个问题上,如果消息已根据其保留策略从代理中删除,则消费者将不会收到消息。我认为,这里可以做的事情很少,例如增加保留期、从备份存储中再次生成或选取消息。