改变kafka在运行时的保留期



我想缩短Kafka的保留期。

所以,如何在运行时减少保留,从而不需要重新启动Kafka服务。

注意:我想在Kafka的全局级别而不是主题级别做保留。

正如Kafka文档在Broker配置部分中所描述的那样

正在更新默认主题配置

代理使用的默认主题配置选项可能会更新没有代理重启。这些配置应用于没有为等价的每个主题配置重写主题配置。一个或多个可以在集群默认级别覆盖这些配置所有的经纪人。

你可以在集群级别动态改变Kafka主题的默认配置。对于保留期,您可以更改以下配置。

  • log.retention.ms
  • log.retention.minutes
  • log.retention.hours

您可以在文档中查看其他配置列表。

但是根据文档log.retention.hours和在这里输入链接描述配置的更新模式在read-only和log.retention.ms是cluster-wide

3.1.1更新代理配置所述

从Kafka 1.1版本开始,一些代理配置可以无需重新启动代理即可更新。请参见动态更新方式

为每个代理配置的更新模式。
  • read-only:需要重启代理来更新
  • per-broker:可以为每个代理动态更新
  • cluster-wide:可以作为集群范围的默认值动态更新。也可以更新为每个代理的测试值。
所以只有你可以改变log.retention.ms

所有代理的config更新命令

bin/kafka-configs.sh --bootstrap-server localhost:9092 --entity-type brokers --entity-default --alter --add-config log.retention.ms=3600000

输出
Completed updating default config for brokers in the cluster.

验证配置是否在集群级别更新,运行以下描述命令

bin/kafka-configs.sh --bootstrap-server localhost:9092 --entity-type brokers --entity-default --describe

输出
Default configs for brokers in the cluster are:
log.retention.ms=3600000 sensitive=false synonyms={DYNAMIC_DEFAULT_BROKER_CONFIG:log.retention.ms=3600000}

如果需要重新删除或重置配置,请执行

bin/kafka-configs.sh --bootstrap-server localhost:9092 --entity-type brokers --entity-default --alter --delete-config log.retention.ms

在最新版本的Kafka(使用Kraft)(目前是3.3.2)中,您可以使用以下命令更改指定主题的保留。

/bin/kafka-configs.sh --bootstrap-server <the-ip-of-the-broker>:9092 --topic <specified-topic> --alter --add-config retention.ms=<retention-ms>

相关内容

最新更新