【问题标题】:Kafka to Kafka -> reading source kafka topic multiple timesKafka 到 Kafka -> 多次读取源 kafka 主题
【发布时间】:2020-05-11 00:47:37
【问题描述】:

我是 Kafka 新手,我有一个配置,其中我有一个源 Kafka 主题,其中包含默认保留 7 天的消息。我有 3 个具有 1 个分区和 1 个复制的代理。

当我尝试使用来自源 Kafka 主题和目标 Kafka 主题的消息时,我能够以相同的顺序使用消息。现在我的问题是,如果我尝试重新处理来自源 Kafka 的所有消息并在目标 Kafka 中消费,我看到我的目标 Kafka 没有消费任何消息。我知道应该避免重复,但可以说我有一个场景,我的源 Kafka 中有 100 条消息,并且在运行两次后,我希望目标 Kafka 中有 200 条消息。但是我在第一次运行时只收到 100 条消息,而第二次运行什么也没返回。

谁能解释一下为什么会发生这种情况以及它背后的功能是什么?

【问题讨论】:

  • 请提供更好的解释,并演示您的问题

标签: apache-kafka kafka-consumer-api


【解决方案1】:

Kafka 消费者从主题的分区中读取数据。一位消费者一次只能读取一个分区。

消息一旦被消费者阅读,就不能再被重新阅读。让我先解释一下当前的偏移量。当我们调用 poll 方法时,Kafka 会向我们发送一些消息。假设我们在分区中有 100 条记录。当前偏移量的初始位置为 0。我们进行了第一次调用,收到了 100 条消息。现在 Kafka 会将当前偏移量移动到 100。

当前偏移量是指向 Kafka 在最近轮询中已经发送给消费者并已提交的最后一条记录的指针。因此,由于当前偏移量,消费者不会两次获得相同的记录。请浏览下图和 URL 以获得完整的理解。 https://www.learningjournal.guru/courses/kafka/kafka-foundation-training/offset-management/

【讨论】:

    猜你喜欢
    • 2020-07-25
    • 2015-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-07
    • 1970-01-01
    • 2015-09-03
    • 2017-01-08
    相关资源
    最近更新 更多