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

Does updating broker settings (topic defaults) change already existing topics?

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

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

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

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

您的主题将使用创建时的配置集,仅此而已,7 天。

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

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