为什么Kaka Streams repartition topic的retention.ms默认设置为-1?这不是无限保留重新分区主题中的消息吗?
Why retention.ms of Kaka Streams repartition topic is set to -1 by default? Isn't this infinitely retain messages in repartition topic?
我认为这与以下链接有关,但我不明白。
可以为kafka streams内部主题提供诸如“retention.ms”、“cleanup.policy”之类的主题配置,例如*-changelog主题,以删除无用的日志。
但是当涉及到像 *-repartition 主题这样的内部主题时,无法提供主题配置值,即使 repartition 主题的默认“retention.ms”是“-1”,这意味着无限保留.如何删除或管理重新分区主题?否则重新分区主题的大小将太大,可能会出现磁盘故障问题。
如何管理重新分区主题?什么是清除数据?
在文档中找不到任何相关解释。
事实
重新分区主题的 retention.ms
默认为 -1,无法在 kafka-streams 客户端代码中覆盖此值。
我误会了什么
- 重新分区主题的大小将无限增加,因为重新分区主题的
retentions.ms
是 -1。
消除误解
- 在
StreamThread
class 中有一个名为 maybeCommit
的方法。
maybeCommit
方法在处理流记录的循环内迭代调用。
- 在
maybeCommit
方法(版本2.7.1)中,有如下注释。
try to purge the committed records for repartition topics if possible
- 基于此,我的理解是,当重新分区主题中的记录被流式传输到更改日志主题时,已经发送的记录会被定期清除。
- 因此,无需为重新分区主题清除或管理
retention.ms
。
参考
如果我错了,请发表评论或更正。
我认为这与以下链接有关,但我不明白。
可以为kafka streams内部主题提供诸如“retention.ms”、“cleanup.policy”之类的主题配置,例如*-changelog主题,以删除无用的日志。
但是当涉及到像 *-repartition 主题这样的内部主题时,无法提供主题配置值,即使 repartition 主题的默认“retention.ms”是“-1”,这意味着无限保留.如何删除或管理重新分区主题?否则重新分区主题的大小将太大,可能会出现磁盘故障问题。
如何管理重新分区主题?什么是清除数据? 在文档中找不到任何相关解释。
事实
-
重新分区主题的
retention.ms
默认为 -1,无法在 kafka-streams 客户端代码中覆盖此值。
我误会了什么
- 重新分区主题的大小将无限增加,因为重新分区主题的
retentions.ms
是 -1。
消除误解
- 在
StreamThread
class 中有一个名为maybeCommit
的方法。 maybeCommit
方法在处理流记录的循环内迭代调用。- 在
maybeCommit
方法(版本2.7.1)中,有如下注释。try to purge the committed records for repartition topics if possible
- 基于此,我的理解是,当重新分区主题中的记录被流式传输到更改日志主题时,已经发送的记录会被定期清除。
- 因此,无需为重新分区主题清除或管理
retention.ms
。
参考
如果我错了,请发表评论或更正。