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

Kafka-紧凑和基于时间的保持

卢鸿博
2023-03-14

我尝试创建一个使用压缩和删除的Kafka主题配置,以实现以下目标:

  • 在保留期限内,保留密钥的最新版本
  • 在保留期之后,要删除的任何早于时间戳的消息
cleanup.policy=[compact,delete]
retention.ms=864000000 (10 days)
min.compaction.lag.ms=3600000 (1 hour)
min.cleanable.dirty.ratio=0.1
segment.ms=3600000 (1 hour)
log.retention.hours=7 days
log.segment.bytes=1.1gb
log.cleanup.policy=delete
delete.retention.ms=1 day

当我在测试中将其设置为较小的量时,例如20mins、1hr等,我可以正确地看到数据在保留期后被修剪,只需调整主题上的retention.ms

我可以看到数据正按照预期的那样被正确压缩,但是如果我从一开始就阅读主题,那么在10天的保留期之后,比10天早得多的数据仍然存在。这么长的保留期,这是问题吗?

我错过了什么配置吗?我已经检查了kafka日志,看到代理正在按预期滚动分段和压缩,但看不到任何关于删除的内容?

Kafka版本为5.1.2-1

共有1个答案

章城
2023-03-14

可能会出现这样的情况:主题和代理配置相互覆盖,最终评估的是一个重要性更高的配置。

 类似资料:
  • 问题内容: 我想以最紧凑和最有效的表达方式转置矩阵。现在我有这个: 有什么想法吗? 问题答案: 你可以有: 此代码不使用,而是使用并将每行映射到它们的转置。由于返回类型相同,因此我也更改为。 但是,像assylias的答案中那样具有简单的for循环可能不会更有效。 样例代码: 我已经实现了一个JMH基准测试,可以比较上面的代码,for循环版本和上面的代码并行运行。使用大小分别为100、1000和3

  • 问题内容: 我正在寻找一种在Java 1.8中创建紧凑配置文件的方法。是否可以创建紧凑配置文件,因为这是说它仅适用于嵌入式版本 问题答案: 简短答案 JEP 161指出配置文件必须使用Java 8。要创建它们,请使用 应答器稍长 您怀疑配置文件可能仅存在于嵌入式平台上,并且@skiwi的评论使我有些困惑,因此我决定自己检查一下。 OpenJDK示例 为了检查配置文件是否存在,我使用了OpenJDK

  • 我试图通过GridBagLayout实现以下目标: 框架将接收一组“字段”(JLabel,JTextField对),我想以“网格状”的方式排列它们,其中一行将包含两个这样的对(JLabel1 JField1 JLabel2 JField2)。当一行包含这四个组件时,下一个组件将添加到另一行。 编辑:我希望组件从面板顶部开始 我的代码生成以下布局。我希望组件的布局更紧凑(尤其是垂直距离) 下面是代码

  • 在解析文件时,我会遍历文件的列标题,看看其中一个是否等于(忽略大小写)compare和: 使用字符集读取该文件: 观察调试器会发现值是非紧凑字符串(UTF-16),而值是紧凑字符串(ASCII): 这是默认行为还是bug?如何使的计算结果为?

  • 问题内容: 我正在寻找用于实例化集合并向其中添加一些项目的紧凑语法。我目前使用以下语法: 我似乎还记得,有一种更紧凑的方法,可以使用的匿名子类,然后将这些项目添加到子类的构造函数中。但是,我似乎不记得确切的语法。 问题答案: http://blog.firdau.si/2010/07/01/java-tips-initializing- collection/

  • 问题内容: 如何使用C ++ / STL执行以下操作?我想用一系列值[最小,最大)填充。 我想我可以使用并提供函子来生成序列,但是我想知道是否有使用STL进行此操作的更简洁方法? 问题答案: 在C ++ 11中,有: