仅查看最后 5 分钟数据的 Kafka 配置

Kafka Configuration for only seeing last 5 minutes of data

抱歉,我是 Kafka 的新手,这个问题可能很简单,但我需要一些帮助。 我没有弄清楚一些配置。 有一个流数据, 我希望消费者只能看到生产者发送的最后 5 分钟的消息。我正在为 .Net 使用 Confluent.Kafka,

var config = new Dictionary<string, object>{
                {"group.id","Test1Costumers"},
                {"bootstrap.servers",brokerEndpoint},
                { "auto.commit.interval.ms", 60000},
                { "auto.offset.reset", "earliest" }
            };

这里是github示例中消费者的配置字典, 另一个问题是我不想在主题中存储超过 5 分钟的消息,因为如果它们超过 5 分钟,我将不需要这些记录。

当我配置 server.properties;

# The minimum age of a log file to be eligible for deletion due to age
log.retention.ms=60000

一分钟后,该文件当前使用的抛出错误

感谢您的帮助。

在 Kafka server.properties 中有一个名为 log.segment.bytes 的设置,默认设置为 1GB。一旦日志段达到 1GB,它就会被关闭,只有在那之后才会开始保留。例如如果您每天生成 100MB 的消息,并且您的保留时间为 1 周,那么您实际上会在数据被删除之前保留大约 17 天。那是因为日志段将需要 10 天才能填满 (1GB),并且从那时起将开始保留。在您的情况下,我假设您没有更改 log.segment.bytes 的值,但您的保留是非常低。因此,由于日志段尚未关闭,它将无法清理数据。