【问题标题】:kafka retention policy didn't work as expectedkafka 保留政策没有按预期工作
【发布时间】:2018-07-05 00:55:45
【问题描述】:

我希望某个 kafka 主题只保留 1 天的数据。但是,如果我们继续向主题(活动)发送数据,它似乎根本没有删除任何数据。我尝试了主题端参数(retention.ms)和服务器端:

    log.retention.hours=1 or log.retention.ms= 86400000 
    cleanup.policy=delete

但如果我们继续向它发送数据,它似乎不适用于活跃的主题。只有当我们停止向主题发送数据时,它才会遵循保留政策。

那么,什么是活动主题的正确配置,只保留一段时间的数据?

【问题讨论】:

  • 哪个版本的kafka

标签: apache-kafka


【解决方案1】:

日志保留基于日志文件的创建日期。尝试设置您的 log.roll.hours by default 它是 24 * 7)。

对于 0.8

如果您只想控制每个主题的日志文件创建,请在主题配置中设置log.roll.hours.per.topic

对于 1.0

日志是分段的,日志分段的每个主题配置是:

segment.ms 注意:这是以毫秒为单位,并覆盖服务器范围的 log.roll.ms 设置。

另见:Purge Kafka Topic

【讨论】:

  • 感谢您的回复。 log.roll.hours 从服务器端提供帮助。但是如果我设置“log.roll.hours.per.topic”,它会适用于所有主题吗?有没有办法将单个主题定义为具有不同的 roll.hour?
  • kafka.apache.org/documentation/#topicconfigs 对于 0.11,每个主题的配置是 segment.ms(覆盖到服务器范围的 log.roll.ms
【解决方案2】:

Kafka 只删除被动日志段。您必须调整 log.segment.byteslog.roll.ms 以将活动日志段滚动到被动日志段。更多信息请参考Broker configuration

【讨论】:

    猜你喜欢
    • 2017-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-13
    • 1970-01-01
    • 1970-01-01
    • 2021-10-19
    • 2020-03-18
    相关资源
    最近更新 更多