日志清理策略说明



如果我理解正确,cleanup.policy的默认值是delete,这意味着当配置log.retention.hourslog.retention.bytes的保留时间或大小限制时,旧的段将被丢弃。

问:

在这种情况下,可以在日志中具有不同值的具有相同键的多个消息,这是正确的吗?具有null值(Tombstones?)的消息会发生什么,这也是默认值?

如果是这样,如果我理解正确,那么这里是delete清理策略,它定义了由delete.retention.ms配置的每条记录保留,这既保证了最后一个键的存在,也将删除所有具有null值的消息?

问:

  1. 如果是这样,即使delete.retention.ms配置为1ms,我仍然可以看到null值的消息吗?

  2. 为了删除日志中的所有消息,我应该更改哪个配置?这可能吗?

  3. retention.msdelete.retention.ms是否以某种方式连接?如果有,采用哪一种保留政策以及如何保留?

谢谢!

这意味着旧的段将在其保留时间或大小限制时被丢弃

关闭段,是的(默认1GB大)。换句话说,500MB的段将在代理上保留比retention.ms更长的时间。

[there]日志中可以有多个具有相同键值但值不同的消息

是的,可能有。所有具有相同键的消息都将在同一分区中结束,而null键的消息将放在不同的分区中(默认情况下)。


  1. 我想你是想问为什么你能看见?因为LogCleaner以线程间隔运行,并且只清理已关闭的段。消息不会在这一毫秒内从日志段中截断,特别是在具有TB级数据的集群上。

  2. 如果您想完全删除一个主题,而不必等待LogCleaner完成它的工作,那么使用适当的API调用来删除主题,而不是使用保留设置来清除主题

  3. delete.retention.ms压缩的设置的话题。retention.mscleaup.policy=delete主题

最新更新