【问题标题】:Single kafka consumer - reading from mutliple topics - what is the order in which messages will be consumed单个 kafka 消费者 - 从多个主题中读取 - 消息的消费顺序是什么
【发布时间】:2018-02-06 12:04:35
【问题描述】:

我正在用 java 编写一个简单的 Kafka 消费者,它被配置为从多个主题中读取。目前,让我们假设两个主题(主题 1 和主题 2)和两个主题的单个分区。

Kafka消费者从topic1和topic2读取的顺序是什么。 如果两个主题都已经发布了 100 条消息。

假设 topic1 按时间顺序有以下消息(A1、A2、A3、......A100)。

假设 topic2 有以下按时间排序的消息(B1、B2、B3、......B100)。

从主题收到消息的顺序是什么,

  1. 消费者首先从topic1读取所有消息,然后是topic2?
  2. 消费者按时间顺序阅读混合来自两个主题的消息?

我阅读了 Kafka 文档,但找不到关于此的参考。非常感谢任何帮助。

【问题讨论】:

  • 您能否帮助您了解在主题 1 数据是 RDBMS 中的父表数据和主题 2 数据是子表数据等场景中的表现,我们如何确保我们不会在父和当 Upsert 说 Parent not found 时出现错误..您如何处理具有父实体和子实体的多个主题但正确处理它们而没有任何问题...您是暂存数据并处理从暂存表读取的数据还是读取数据从卡夫卡飞来的父母和孩子并处理它们?

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


【解决方案1】:

消费者将在每次轮询中提取多少数据取决于消费者配置(轮询记录、轮询间隔、获取最大字节数、最大分区大小等),因此无法保证跨主题分区的消息顺序,如排序仅在主题分区内维护

【讨论】:

    猜你喜欢
    • 2019-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-27
    • 2019-04-15
    • 1970-01-01
    • 1970-01-01
    • 2017-01-26
    相关资源
    最近更新 更多