【发布时间】:2020-09-19 15:44:03
【问题描述】:
如果一个生产者有 3 个主题,每个主题有 4 个分区,那么消费者组应该包含 4 个还是 12 个消费者? 我要达到理想的消费。
【问题讨论】:
标签: apache-kafka spring-kafka kafka-partition
如果一个生产者有 3 个主题,每个主题有 4 个分区,那么消费者组应该包含 4 个还是 12 个消费者? 我要达到理想的消费。
【问题讨论】:
标签: apache-kafka spring-kafka kafka-partition
每个partition 应该有一个consumer 以达到理想消费。因此,对于您的情况,12 个消费者应该是理想的。
【讨论】:
如果你有 N 个分区,那么在同一个消费者组中最多可以有 N 个消费者,每个消费者都从一个分区中读取。当您的消费者少于分区时,一些消费者将从多个分区中读取。此外,如果您的消费者多于分区,那么一些消费者将处于非活动状态并且根本不会收到任何消息。
您不能有多个消费者 - 在同一个消费者组内 - 消费来自单个分区的数据。因此,为了使用 N 个消费者从同一分区消费数据,您还需要创建 N 个不同的消费者组。
请注意,分区可增强 Kafka 集群内的并行性。如果您创建数千个消费者来使用仅来自一个分区的数据,我怀疑您将失去某种程度的并行性。
【讨论】: