2017-06-05 55 views
0

我们有一个包含5个分区的主题。我们正在根据密钥的校验和定义分区。有些情况下,没有解决分区3的密钥,所以没有提交。因此,在配置的偏移保留天数之后,消费者当前偏移开始显示未知。我们需要解决这个问题,因此我们认为我们必须在主题级设置日志和偏移保留。 在配置中,我看到我们有配置:retention.ms用于日志保留,但没有找到相应的偏移保留配置。有人可以请同样的帮助。主题级别的kafka偏移和日志保留配置

编辑: 仓/ kafka-topics.sh --zookeeper XXX --alter --topic XXXX --config retention.ms = 86400000

上述用于设置特定日志保留时间到主题。但是,我们如何在查询中指定偏移量保留。

回答

0

承诺所有消费者的消费者偏移量和所有主题都存储在一个内部的“__consumer_offsets”主题中。因此,恐怕不能单独控制每个主题的偏移保留。

注意:我发现这对于长时间没有任何主题分区信息的情况可能会有问题。

我发现下面的票证能有所帮助: https://issues.apache.org/jira/browse/KAFKA-3806

第一个意见建议提交偏移甚至在消费者毫无进展的情况下(没有到达一个给定的分区新的消息) ,为了避免这种确切的问题:

你想保持犯下的偏移量,即使他们并没有改变

+0

我有另一个问题。我试着做偏移量保留。在kafka配置文件中的分钟数为1分钟,以测试偏移量是否未知且等待超过一小时(偏移量清除间隔为10分钟)。但它没有改变。 –

+0

我认为偏移量(如任何主题)一次只能移除一个段(而不是活动段),所以我认为出于测试目的,您还必须确保偏移量主题的段正在滚动。我无法建议如何正确设计此测试。以下更好地说明了段删除如何工作:https://stackoverflow.com/a/40251356/7897191 –

+0

谢谢Michal Borowiecki –

0

我认为您正在寻找log.retention.bytes

然而,在保留期内根本没有数据是您应该解决的问题。通过减少分区数量或使用其他算法创建密钥。

+0

感谢jvwilge。编辑:bin/kafka-topics.sh --zookeeper XXX --alter --topic XXXX --config retention.ms = 86400000 以上内容用于设置特定于主题的日志保留时间。但是,我们如何在查询中指定偏移量保留。 –

+0

你究竟是什么意思?例如,你想在最近的X小时内添加数据吗? – jvwilge

+0

我想为每个kafka主题配置日志保留和偏移保留。是否有可能,如果是的话,如何做到这一点? –

0

可以配置取舍使用参数“offsetsets.retention.minutes”保留server.properties中的值。默认值是1440

抵消保留是系统范围,因此您无法在单个主题级别上设置它