【问题标题】:Apache Kafka 0.9 Java API Consuming all messages from beginning of topicApache Kafka 0.9 Java API 从主题开始消费所有消息
【发布时间】:2016-08-27 20:02:47
【问题描述】:

我需要能够从一开始就使用一个主题的所有消息。本质上与此 StackOverflow 查询相同,但针对 Kafka 0.9 进行了更新。 (似乎 0.9 特定的 StackOverflow 答案相对较少)。

Kafka High Level Consumer Fetch All Messages From Topic Using Java API (Equivalent to --from-beginning)

0.9 有一个完全不同的 API,我真的不知道从哪里开始。我可以使用提供的 bash 脚本从命令行执行此操作,但不知道如何继续。

能否请您提供适当的方法或一个小示例脚本来帮助我入门?谢谢!

【问题讨论】:

    标签: java apache-kafka kafka-consumer-api


    【解决方案1】:

    【讨论】:

    • 谢谢!有没有办法在不修改外部属性文件的情况下做到这一点?我可以在我的代码中使用的解决方案是理想的。
    • 你可以在Properties中设置——和v0.8.x一样。
    • 我将consumerProps.setProperty("auto.offset.reset", "earliest") 添加到我的属性设置代码中,然后用它来创建一个新的KafkaConsumer。行为似乎与之前相同。是否有任何进一步的信息可以让您更轻松地帮助我?
    • Properties 覆盖配置文件中的值。不应该有冲突。将KafkaConsumerearliest 一起使用,您无法在同一“组”的最后提交偏移量之前读取数据。对于您的消费者的第一次启动,您应该收到所有消息,因为到目前为止没有发生任何提交。禁用自动提交也可能有所帮助。使用SimpleConsumer 代替KafkaConsumer 也是一种选择。不确定你到底会得到什么行为?请描述观察到的和预期的行为。
    • 如果消费者属于同一个组,他们从最后提交的偏移量读取。您需要将组 ID 更改为从头开始读取(或对于单个消费者 - 即非并行)省略组 ID。
    猜你喜欢
    • 1970-01-01
    • 2021-12-12
    • 2019-01-02
    • 2018-07-27
    • 2016-01-07
    • 2020-07-18
    • 2016-09-04
    • 2014-03-12
    • 1970-01-01
    相关资源
    最近更新 更多