Kafka配置仅显示最后5分钟的数据

时间:2018-07-23 07:07:54

标签: c# apache-kafka confluent-kafka

对不起,我是Kafka的新人,这个问题很简单,但我需要一些帮助。 我没有弄清楚一些配置。 有一个流数据, 我希望消费者只能看到处理者发送的最后5分钟的消息。我正在将Confluent.Kafka用于.Net,

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

这是github示例中的Consumers的配置字典, 另一个问题是,我不想将邮件存储在主题中超过5分钟,因为我的记录超过5分钟就不需要这些记录。

当我配置server.properties时;

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

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

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

在卡夫卡server.properties中有一个名为log.segment.bytes的设置,默认设置为1GB。日志段达到1GB后,它将关闭,并且只有在保留期开始后才关闭。如果您每天产生100MB的邮件,并且保留时间为1周,则实际上该数据将被保留大约17天,然后才能被删除。这是因为日志段将需要10天才能用完(1GB),并且从那时起保留将开始生效。就您而言,我假设您尚未更改log.segment.bytes的值,但是您的保留是非常低。因此,由于日志段尚未关闭,因此无法清理数据。