Kafka会立即删除最旧数据直至总大小低于10G,因日志保留策略中时间和大小满足任一条件即触发清理;本例中数据量达10G上限先于7天时间,故按日志段为单位从最老segment开始异步删除。

Kafka 会立即开始删除最旧的数据,直到总大小低于 10G。
保留策略是“或”关系
Kafka 的日志保留策略中,时间和大小两个条件是逻辑“或”的关系。只要其中一个条件被满足,就会触发数据清理。在这个场景里,虽然时间只过了5天(未到7天),但数据量已经达到了设置的 10G 上限,因此大小策略已经被触发。
按日志段为单位删除
Kafka 不会精确删除刚好超出的部分,而是以日志段(LogSegment)为单位,从最老的 segment 开始删除。它会持续删除旧 segment,直到整个分区的日志总大小回落到 10G 以内。这个过程是异步进行的,由后台线程定期检查并执行。
哪个条件先满足就按哪个执行
Kafka 并不区分策略优先级,而是看哪个条件先达到。本例中大小限制先被突破,所以即使时间还没到,也会立刻启动清理。反过来说,如果数据增长很慢,7天后总量才5G,那么时间一到,Kafka 也会清理超过7天的旧数据。
基本上就这些,两个条件任意一个达标都会触发清理。当前情况是大小先达标,所以数据会被删。










