需要有关主题级别的基于Kafka时间保留的信息

时间:2019-02-11 13:55:17

标签: apache-kafka

在更新retention.ms及以下内容时查找详细信息

  1. 创建6个小时的retain.ms主题t1
  2. 产生10条消息
  3. 2小时后,将保留时间(ms)更改为24小时。
  4. 产生10条消息

问题:这是否将应用程序更改为较早的消息(较早的第2步2小时产生了10条消息)?还是仅适用于新生成的消息(步骤4的消息)?

2 个答案:

答案 0 :(得分:1)

您可以修改已经存在的主题的保留,它将适用于Kafka存储的所有邮件(适用于新旧邮件)。 您可以减少和增加retention.ms属性。

记录清除程序的频率由log.retention.check.interval.ms属性(它是代理属性)描述,检查日志是否符合删除条件。如果您的retention.mslog.retention.check.interval.ms低得多,您可能会看到一些滞后。

还有其他情况,日志可能会在retention.ms之后删除。 Kafka将邮件分段保存。 清洁适用于整个网段,而不适用于特定邮件。 如果段是 big log.segment.bytessegment.bytes),并且消息被频繁添加到不超过最后添加的消息的retention.ms,则消息可能会保留比retention.ms建议的时间长几倍。

segment.bytes的默认值为1073741824, 因此,根据消息的大小,您必须生成数千到数百万条消息才能关闭日志段, 这样就可以删除记录。

答案 1 :(得分:0)

保留在主题级别应用。只要您在删除邮件之前增加了主题保留(即旧的保留已过去),该保留也将适用于它们。 因此,以您的示例为例,答案是“是”,前10条消息(第2步)将保留另外22个小时(24h-2h),而后10条消息(第4步)将保留另外24小时