我正在尝试将log.retenton.hours
设置为kafka 0.10.2x的代理级别配置。但是我收到以下命令的错误。
kafka-configs.sh --zookeeper zookeeper:2181 --entity-type brokers --entity-name 0 --alter --add-config log.retention.hours=-1
Error while executing config command requirement failed: Unknown Dynamic Configuration 'log.retention.hours'.
java.lang.IllegalArgumentException: requirement failed: Unknown Dynamic Configuration 'log.retention.hours'.
at scala.Predef$.require(Predef.scala:277)
at kafka.server.DynamicConfig$.$anonfun$validate$1(DynamicConfig.scala:101)
at kafka.server.DynamicConfig$.$anonfun$validate$1$adapted(DynamicConfig.scala:100)
at scala.collection.Iterator.foreach(Iterator.scala:929)
at scala.collection.Iterator.foreach$(Iterator.scala:929)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1406)
at kafka.server.DynamicConfig$.kafka$server$DynamicConfig$$validate(DynamicConfig.scala:100)
at kafka.server.DynamicConfig$Broker$.validate(DynamicConfig.scala:59)
at kafka.admin.AdminUtils$.changeBrokerConfig(AdminUtils.scala:555)
at kafka.admin.ConfigCommand$.alterConfig(ConfigCommand.scala:105)
at kafka.admin.ConfigCommand$.main(ConfigCommand.scala:68)
at kafka.admin.ConfigCommand.main(ConfigCommand.scala)
答案 0 :(得分:2)
如错误所示,该属性不是动态的(在代理运行时无法修改)
此外,您的版本不应该提供该功能
从Kafka 1.1版开始,可以在不重新启动代理的情况下更新某些代理配置
您可以按主题级别设置保留时间,否则,您需要编辑每个代理的server.properties
文件并正常重启它们
我确定您有充分的理由“禁用”保留,但我建议您先尝试压缩主题
答案 1 :(得分:2)
log.retention.hours
是代理级别的只读属性,因此无法使用kafka-config.sh动态更改。
在server.properties中对其进行更改,然后重新启动代理。
以下是只读或动态代理配置的详细信息。 GitHub