更新代理设置主题默认值是否会更改现有主题?

问题描述

在 kafka 中有一个 log.retention.ms 配置属性,可以在 broker 级别设置,并且可以在主题级别被 retention.ms 覆盖。

想象一下,我的 Kafka 集群中有一个具有认配置的主题 - 没有明确设置保留。创建主题时,代理级别 log.retention.ms 设置为 7 天。与此同时,我将此设置更改为 30 天。这是否意味着我现有的主题将使用创建主题时存在的配置(7 天),还是现在使用 30 天的新 broker 配置?

由于在执行 kafka-topics.sh --describe --topic foo 时未显示主题级别的未明确设置的配置值,因此我发现很难验证。

解决方法

这是否意味着我现有的主题将使用创建主题时存在的配置(7 天),还是现在使用 30 天的新 Broker 配置?

您的主题将使用创建时的配置集,即 7 天。

只会将新创建的主题设置为保留 30 天。请注意,在代理级别设置此值意味着未指定保留时间的主题的“默认”值,但在代理级别修改此值不会影响现有主题,没有“级联”更新机制在这里。

简短回答:否。唯一可以更改主题创建时为其设置的保留时间的操作是专门更改此值,例如,使用 kafka-topics.sh --alter 命令。