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

使Kafka主题日志保持永久

宰父宾实
2023-03-14

我正在将日志消息写入Kafka Topic,我希望此主题的保留是永久的。我在Kafka和Kafka Connect(_schemas、连接-配置、连接-状态、连接-偏移等)中看到,有一些特殊主题不会因日志保留时间而删除。如何强制一个主题像这些其他特殊主题一样?是命名约定还是其他属性?

谢啦

共有3个答案

厍晋鹏
2023-03-14

您可以在此处找到参数的默认值:https://jaceklaskowski.gitbooks.io/apache-kafka/content/kafka-properties.html

如果要将数据永久保留在主题中则可以将 log.retention.bytes 和 log.retention.ms 设置为 -1。

毛宏达
2023-03-14

这些专题是压缩专题。这意味着它们由键控消息组成,并且只保留列表的最近键。在这里写一篇完整的文章。在大多数情况下,这可能就是您想要的无限保留时间。

夏意蕴
2023-03-14

如果要永久保留所有主题,可以将日志保留时间日志保留字节数都设置为 -1。

 类似资料:
  • 我在一个输入主题上构建KTable,并且在两个Kafka Stream应用程序实例上加入KStream。 KTable的输入主题已经是一个日志压缩主题。因此,当我的一个应用程序实例关闭时,通过读取input log compacted主题,另一个实例状态存储似乎会用整个状态刷新。 所以不需要为我的KTable存储启用日志记录(更改日志)? 我的源输入日志压缩主题可能有数百万条记录,所以如果我在KT

  • 我有一个带有Kafka使用者的spring应用程序,它使用@KafKalisterner注释。正在使用的主题是日志压缩的,我们可能会遇到必须再次使用主题消息的情况。以编程方式实现这一目标的最佳方法是什么?我们不控制Kafka主题配置。

  • 我需要维护自己的全局表结构。基本上,全局存储与处理器相连,我使用一些计算来创建键,然后将其存储到键值存储。 由于全局状态存储没有更改日志主题,所以它使用原始主题作为更改日志。在状态恢复的情况下,它只是将主题数据加载到全局表(这将是错误的),因为我们构建了自己的密钥 我的要求是用我的自定义键(不是直接来自主题的键)创建一个全局存储。有什么解决方案吗? 下面的链接回答了我的问题Kafka stream

  • 我试图限制一个Kafka主题的日志大小。 因为我已经将retention.bytes设置为1,所以我希望写给主题'Kafkatest1'的任何消息都将自动删除。但消息不断被附加。 是否需要任何额外的配置来实现这一点?

  • 假设我使用kafka streams(kafka-streams-scala库,版本2.2.0)。 我想出了一种可能的方法:创建流和可变映射,然后使用来跟踪每个键的N个最近值。 我的问题是是否有更好的方法来实现这一点--或者使用streams API,或者至少不使用可变映射。