当前位置: 首页 > 知识库问答 >
问题:

Kafka的保留政策并不像预期的那样奏效

曹和正
2023-03-14

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

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

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

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

共有1个答案

荆学民
2023-03-14

日志保留基于日志文件的创建日期。尝试设置log.roll.hours<24(默认情况下为24*7)。

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

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

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

另见:清除Kafaka主题

 类似资料:
  • 假设我有一个多代理(运行在同一主机上)的Kafka设置,其中有3个代理和50个主题,每个主题配置为有7个分区和3个复制因子。 我有50GB的内存要用于kafka,并确保kafka日志永远不会超过这个内存数量,因此我想配置我的保留策略以防止这种情况。 我已设置删除清理策略: 我应该如何配置上述参数,以便每7天删除一次数据,并确保如果需要,可以在较短的窗口中删除数据,这样我就不会耗尽内存?

  • 我想为我们拥有的一些用例实现数据回放,为此,我需要使用Kafka保留策略(我使用的是连接,我需要窗口时间才能准确)。附言:我正在使用Kafka版本0.10.1.1 我将数据发送到主题中,如下所示: 我创建的主题如下: Kafka主题--创建--zookeeper localhost:2181--复制因子1--分区1--主题myTopic Kafka主题--zookeeper localhost--

  • 我想使用查找从一个集合中获取一些数据并将其放入另一个集合中。 在localfield或foreignfield中写什么都不重要,因为它从player_game_stats中获取所有数据并将其插入player集合中的每个文档中。我想检查localfield和foreignField是否相等,但lookup不检查这一点。我对mongodb使用NoSqlBooster

  • 我不明白为什么我的结果不同: 我有表订单和列价格(在mysql中键入double)。 数据库中的价格值为13.5。 查询: 结果是:1.21 查询: 结果是1.22 不舍入:结果为1.215 因此,一轮后的正确结果是1.22。 为什么查询

  • 问题内容: 从Java文档中: CLASS:注释由编译器记录在类文件中,但VM在运行时无需保留。 运行时:注释由编译器记录在类文件中,并在运行时由VM保留,因此可以通过反射方式读取它们。 消息来源:注释将被编译器丢弃。 我了解RUNTIME(以便在反射中使用批注)和CLASS(对于编译器)的用法,但我不知道何时使用它可能有用 @Retention(RetentionPolicy.SOURCE) 你

  • 然后更新状态: 由于应该合并,我希望它是: 但相反,它会吃掉id,状态为: 这是预期的行为吗?只更新嵌套状态对象的一个属性的解决方案是什么?