【问题标题】:Kafka Configuration for only seeing last 5 minutes of dataKafka 配置仅查看最后 5 分钟的数据
【发布时间】:2018-12-10 00:12:13
【问题描述】:

对不起,我是 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

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

感谢您的帮助。

【问题讨论】:

  • 你在windows下吗?能发一下日志吗?
  • 是的,我在 Windows 下,但我不知道日志在哪里。我需要得到最后 5 分钟产生的消息。我将启动一个作业来消耗 5 分钟产生的消息。例如,如果当前时间是 11:15,我将在 11:10 到 11:15 之间消费消息。这意味着我需要按时间 11:10 获得开始偏移量,并按时间当前时间结束偏移量。当我开始一个新的消费者时,它会从一开始就给我所有的信息。

标签: c# apache-kafka confluent-platform


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-31
    • 2022-11-30
    • 2019-03-22
    • 1970-01-01
    • 2017-05-31
    • 1970-01-01
    • 2018-12-24
    • 1970-01-01
    相关资源
    最近更新 更多