如何在Kafka中为压缩主题设置无限保留?

格雷格·巴拉耶维奇(Greg Balajewicz)

我正在努力使紧凑的主题按预期工作。

我有一个压缩的主题,邮件已被正确压缩,但是当旧邮件的时间早于默认保留期限时,它们将被删除。

我想要一个紧凑的主题,该主题至少无限期地具有一个键的值。

如何做到这一点?我是否必须重写该特定主题的保留期?还是默认情况下,压缩主题应该无限期地保留一个键的值?

我的配置

log.cleaner.backoff.ms = 15000
log.cleaner.dedupe.buffer.size = 134217728
log.cleaner.delete.retention.ms = 1000
log.cleaner.enable = true
log.cleaner.io.buffer.load.factor = 0.9
log.cleaner.io.buffer.size = 524288
log.cleaner.io.max.bytes.per.second = 1.7976931348623157E308
log.cleaner.min.cleanable.ratio = 0.001
log.cleaner.min.compaction.lag.ms = 0
log.cleaner.threads = 1
log.cleanup.policy = [compact, delete]

log.retention.bytes = -1
log.retention.check.interval.ms = 5000
log.retention.hours = 0
log.retention.minutes = 20
log.retention.ms = null
格雷格·巴拉耶维奇(Greg Balajewicz)

我找到了一个我想分享的解决方案。不幸的是,Kafka文档对此并不十分清楚,因此这可能会对某人有所帮助:

不要设置这个:

log.cleanup.policy = [compact, delete]

此设置将意味着所有主题均被压缩和删除。因此,您的主题将按照压缩规则进行压缩,但是当段(消息)的时间超过设置的保留时间(在我的情况下为20分钟)时,它们也会被删除。

将默认清理策略设置为:

log.cleanup.policy = compact
or 
log.cleanup.policy = delete

(log.cleanup.policy =删除是默认配置)

log.cleanup.policy = compact ”表示默认情况下,主题将设置为压缩。

设置此默认策略时,无需进行任何更改。无需将log.retention设置为-1或任何其他值。您的主题将被压缩,并且旧消息也不会被删除(按照压缩规则)

log.cleanup.policy = delete ”意味着默认情况下,主题将在保留时间后被修剪。

如果选择此默认策略,则将需要覆盖每个主题的cleanup.policy;否则,将不执行任何操作。即,在此主题上显式设置cleanup.policy = compact。这将使该特定主题使用压缩而不是删除。您不需要调整log.retention。

PS,从直觉上讲,我认为当您基于每个主题指定“ log.cleanup.policy = compact”时,默认的“ log.cleanup.policy = [紧凑,删除]”会被覆盖,但是事实并非如此。使用“ log.cleanup.policy = [紧凑,删除]”,您可以有效地覆盖紧凑主题的工作方式;您将压缩更改为压缩+删除。

PS2,如果您在测试时遇到麻烦并且无法压缩主题,请注意,只能压缩非活动文件段;活动段永远不会被压缩。因此,为了进行测试,请将log.segment.bytes设置为较小的值,例如10000

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将保留时间设置为1秒后,如何清除Kafka主题的确已清除

如何在Kafka中为特定主题更改TTL

如何在Windows中为小部件设置主题?

如何在Storybook中为Material UI设置主题

在集群配置中如何在主机重启后继续保留kafka主题

如何在终端中将主题设置为默认主题

在Kafka中,如何将min.insync.replicas = 1设置为__consumer_offsets_主题?

如何在Apache Kafka中创建主题?

如何在Kafka中创建持久主题

如何在Apache Kafka中管理主题

如何在Kafka中制作子主题

如何在Android应用程序中保留主题设置?

如何在UIActivityViewController中设置邮件主题?

如何在YouTrack中设置深色主题

如何在phpMyAdmin中设置默认主题?

如何在本地存储中设置主题?

如何在多商店安装中为opencart中的不同商店设置不同的主题?

如何在Kafka流中获取当前的Kafka主题?

尽管我们将保留时间设置为1H,但数据仍保留在Kafka主题中

如何在Linux上的命令行中为GTK + 2程序设置字体和主题?

如何在视图存根中为展开式布局设置不同的主题

如何在gnome-3中为标题栏设置主题/样式?

如何在UWP中为HighContrast主题设置TextBlock背景颜色

如何在Android的Java中为弹出菜单设置自定义主题?

如何在Android Studio中为Android项目设置自定义主题?

如何在 Python 中压缩数组但保留其余部分?

如何在Spring Kafka中清除测试中的主题

Kafka 日志压缩主题获取密钥为空

如何在数组中为多个对象设置属性但保留各自的反应性