apache-kafka - 为什么 kafka 中两个 Kstream 的共同分区需要两个流的分区数相同?

标签 apache-kafka apache-kafka-streams

我想知道为什么 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/

相关文章:

replication - Apache Kafka : Mirroring vs. 复制

apache-kafka - KTable 状态存储无限保留

apache-kafka - 将消息加入 Kafka Stream 后从流中清除消息

java - Kafka Streams - 处理超时

java - 出现异常 "submit-job-thread-pool-0"Spark 作业 kafka

python - kafka认证与授权

scala - 卡夫卡流0.10.1 "Failed to flush state store"

java - 如何使用 Spring Cloud Stream 和 Kafka Streams Binder 暂停(打开/关闭)流处理?

apache-spark - 本地 Kafka 应用程序失败并显示 : NoSuchMethodError: createEphemeral

java - Kafka : Single consumer group in multiple instances