如何使用kafka-configs查看和设置offsets.retention.minutes

时间:2019-06-21 14:30:01

标签: apache-kafka

从文档中看,这是一个代理配置,但细节很薄。

1)将其设置为不确定的正确方法是什么?如果这样做,我仍然能够手动删除使用者组及其关联的偏移量吗?

2)我可以将单个消费者组设置为具有不同的保留率吗?

3)如何查看全局或特定消费者群体的保留率?即使我之前没有设置此设置,我也可以查看并获取电话号码吗?

1 个答案:

答案 0 :(得分:2)

1)Kafka Docs提到offsets.retention.minutes的有效值为

  

[1,...]

这意味着您无法设置offsets.retention.minutes=-1,但可以将其设置为相当大的整数,以便长时间保留偏移量。

2)我假设您正在询问是否可以在主题级别为offsets.retention.minutes设置不同的值;据我所知,这是不可能的。您只能在代理级别(即server.properties文件中)修改此配置。

编辑: 恐怕您无法避免滚动重启,因为您无法使用offsets.retention.minutes来更改kafka-configs.sh

> bin/kafka-configs.sh --zookeeper localhost:2181 --entity-type brokers --entity-name 0 --alter --add-config offsets.retention.minutes=200800

Error while executing config command requirement failed: Unknown Dynamic Configuration 'retention.minutes'.
java.lang.IllegalArgumentException: requirement failed: Unknown Dynamic Configuration 'retention.minutes'.
        at scala.Predef$.require(Predef.scala:224)
        at kafka.server.DynamicConfig$$anonfun$kafka$server$DynamicConfig$$validate$1.apply(DynamicConfig.scala:101)
        at kafka.server.DynamicConfig$$anonfun$kafka$server$DynamicConfig$$validate$1.apply(DynamicConfig.scala:100)
        at scala.collection.Iterator$class.foreach(Iterator.scala:893)
        at scala.collection.AbstractIterator.foreach(Iterator.scala:1336)
        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)

3)由于这是代理级别的配置,因此您可以在server.properties文件中或从代理的日志文件中查看值。例如,

 grep offsets.retention.minutes /path/to/your/kafka-broker.log

请注意,即使您尚未配置offsets.retention.minutes,其值也会默认为10080