【问题标题】:Reading from earlier offset Apache Storm从早期偏移量 Apache Storm 中读取
【发布时间】:2016-08-19 19:25:15
【问题描述】:

我已经为 Storm Pipeline 设置了 Kafka Spout。我既不想从最新的偏移量也不想从头开始读取数据。有没有办法从可配置的偏移量中读取存储在 zookeeper 中的偏移量。 Storm 为我们提供了从最新偏移量或从头开始读取的方法。我不想要那种情况。

用例:偏移 0 部署拓扑。
偏移 50 改变了拓扑
偏移量 100 检测到最近的拓扑有错误。想从偏移量 50 开始。
我怎样才能达到同样的效果。?

【问题讨论】:

    标签: apache-kafka apache-storm apache-zookeeper


    【解决方案1】:

    KafkaSpout 将从 zookeeper 读取最后提交的偏移量。如果 zookeeper 中没有偏移量,它将使用配置的 startOffsetTime。 KafkaSpout的默认配置如下。

    public long startOffsetTime = kafka.api.OffsetRequest.EarliestTime();
    

    如果改变startOffsetTime的值,设置KafkaConfig.ignoreZkOffsets = true,我觉得可以让consumer从具体的offset开始。
    如果 ignoreZkOffsets 等于 true,则 spout 将始终从 KafkaConfig.startOffsetTime 定义的偏移量开始读取,如上所述。

    另外,看看这篇文章。 How do I accurately get offsets of messages for a certain timestamp using OffsetRequest?

    Reference

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-22
      • 2019-06-25
      • 2019-08-16
      • 1970-01-01
      • 2012-10-20
      • 2019-12-13
      • 2021-04-25
      相关资源
      最近更新 更多