我想知道为什么 kafka 中的两个 Kstream 的共同分区需要与以下 URL 中的文档中给出的相同数量的分区:
enter link description here
最佳答案
正如名称“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等一起。
关于apache-kafka - 为什么 kafka 中两个 Kstream 的共同分区需要两个流的分区数相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45545181/