【问题标题】:Why does co-partitioning of two Kstreams in kafka require same number of partitions for both the streams?为什么 kafka 中两个 Kstream 的共同分区需要两个流的相同数量的分区?
【发布时间】:2017-08-07 10:54:02
【问题描述】:

我想知道为什么在 kafka 中对两个 Kstream 进行共同分区需要两个流的分区数量相同,如下面 URL 中的文档中给出的那样: enter link description here

【问题讨论】:

标签: apache-kafka apache-kafka-streams


【解决方案1】:

正如名称“co-partition”所示,您希望将来自不同主题但相同键的数据放到同一个 Kafka Streams 应用程序实例中。如果您没有相同数量的分区,则无法获得此行为。

假设主题 A 有 2 个分区,主题 B 有 3 个分区。因此,可能会发生带有键 X 的一条记录被散列到分区 A-0 和 B-1(即,不同的分区号)。但是,对于不同的密钥 Y,它可能会被散列为 A-0 但 B-2。

仅当两个主题的分区数相同时,具有相同键的记录最终会在相同的分区中(当然是不同主题的),这允许处理 A-0/B-0 和 A-1 /B-1 等一起。

【讨论】:

  • 您的解释中似乎缺少一些我想进一步理解的东西。分区的分配怎么可能在两个不同的消费者组中是相同的?假设分区数相同,分区策略相同。如果是 2 个不同的消费者组,两个消费者组中的消费者如何分配到同一个分区。那部分对我来说很模糊。
  • 我对此提出了一个新问题,并附有此问题的链接:stackoverflow.com/questions/57220589/…
  • 这个问题不是关于两个消费群,而是一个消费群。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-02
  • 1970-01-01
  • 1970-01-01
  • 2013-10-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多