主题级别的kafka偏移量和日志保留配置

时间:2017-06-05 07:36:23

标签: apache-kafka commit offset

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

修改 bin / kafka-topics.sh --zookeeper XXX --alter --topic XXXX --config retention.ms = 86400000

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

3 个答案:

答案 0 :(得分:2)

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

NB。我发现,如果您的某个主题分区上没有长时间没有消息,则可能会出现问题。

我找到了以下可以提供帮助的票证: https://issues.apache.org/jira/browse/KAFKA-3806

第一条评论建议即使在消费者没有进展的情况下也提交抵消(没有新消息到达给定分区),以避免这个确切的问题:

  

即使他们没有改变,你也会想继续提交补偿

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

您可以使用参数“offsets.retention.minutes”在server.properties中配置偏移保留。默认值为1440

偏移保留是系统范围的,因此您无法在单个主题级别设置