【问题标题】:How to alter the TTL for a particular topic in Kafka如何更改 Kafka 中特定主题的 TTL
【发布时间】:2020-09-16 05:59:23
【问题描述】:

我想将特定 Kafka 主题的 TTL 更新为 10 天。

我该怎么做?

【问题讨论】:

标签: apache-kafka


【解决方案1】:

你之前问过这个问题,我已经在这里回复了:Update TTL for a particular topic in kafka using Java

除非您要求使用 Kafka 工具来做到这一点? (而不是在 Java 中) 在这种情况下,有 kafka-topics.sh 命令行工具,允许您使用 --alter 选项执行此操作。

bin/kafka-topics.sh --alter --zookeeper localhost:2181 --topic test --config retention.ms=10000

因为使用 kafka-topics 脚本进行更改可能会在下一版本中删除,所以您应该使用 kafka-configs 脚本:

bin/kafka-configs.sh --zookeeper localhost:2181 --alter --entity-type topics --entity-name test --add-config retention.ms=5000

【讨论】:

  • 谢谢,是的,我想在没有 Java 的情况下这样做,所以单独提出了这个问题,这里我们可以给两个主题名称还是只给一个主题,我的意思是我们可以使用单个命令更新多个主题的 TTL像你提到的那个?
  • 主题参数是一个Java正则表达式。只有这样才能更新多个主题(即 --topic test.* 将更新 test1 和 test2 主题)。
  • 在上面运行命令时(使用kafka-topics),我得到以下异常Error: Exception thrown by the agent : java.rmi.server.ExportException: Port already in use: 9999; nested exception is: java.net.BindException: Address already in use (Bind failed)
  • 我需要知道您用于运行此脚本的 kafka 版本是什么(因此您在 PC 上下载了用于运行此类脚本的 kafka 包)和远程 Kafka 代理版本。跨度>
  • 主题不会被删除,不用担心。只是在该主题中停留时间超过您的 TTL 的记录。
猜你喜欢
  • 2017-12-25
  • 2016-09-23
  • 2016-10-23
  • 2015-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-29
  • 1970-01-01
相关资源
最近更新 更多