kafka偏移主题保留期的问题

时间:2017-03-02 03:48:07

标签: apache-kafka kafka-consumer-api

我们正面临卡夫卡的问题。我们的主题只有一个分区,而且只有一个消费者组中的一个消费者。消费者已停止了一个月。与此同时,制作人正在向该主题发送消息。

当我们再次启动消费者时,它无法消费消息。我假设先前提交的偏移已经丢失,因此消费者不知道在唤醒时找到起点。

当我们再次停止并启动消费者时,消费者可以获取新消息,但之前发送的所有消息都不会被消费。

偏移是否已损坏? kafka内部主题的保留期是否会抵消,这意味着最后提交的偏移量已被删除?

3 个答案:

答案 0 :(得分:4)

可以使用以下命令在kafka代理中配置保留值:

offset.retention.minutes

默认为24小时。看到: Kafka consumer group offset retention

答案 1 :(得分:3)

我们也面临着同样的问题,我对此进行了一些研究。我将其更改为以下已解决的步骤。

我们保留14天,因此我们将kafka抵消主题的保留时间更改为14天

我们通过在下面运行

将cleanup.policy从紧凑更改为删除
.tab {
  display: flex;
  flex-flow: column wrap;
}

.subtab {
  display: inline-flex;
}

.box {
  flex: 1 0;
  width: 20%; 
}
  

主题“ __consumer_offsets”的更新配置。

答案 2 :(得分:0)

kafka中消息(偏移)的默认保留期为一周,即7天

在保留期之后,由于避免空间溢出,所有现有的偏移量将从经纪人中删除。

由于kafka / zookeeper已删除了先前的偏移量,因此先前提交的偏移量将更改为最新的偏移量。

如果您想长时间接收消息,请在kafka中创建主题时指定--retention-period值。