首页 > 解决方案 > 如何使用 kafka-configs 查看和设置 offsets.retention.minutes

问题描述

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

1)将其设置为无限期的正确方法是什么?如果我这样做了,我仍然可以手动删除消费者组及其关联的偏移量吗?

2) 我可以设置不同的消费者群体来获得不同的留存率吗?

3) 我如何查看全球或特定消费者群体的留存率?即使我之前没有设置过,我可以查看并获得一个号码吗?

标签: apache-kafka

解决方案


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


推荐阅读