假设我有一个 kafka 主题,大约有 10 个分区,我知道每个消费者组在任何给定时间都应该有 10 个消费者从主题中读取,以实现最大的并行性。
但是,我想知道对于一个主题在任何给定时间点可以处理的消费者组的数量是否有任何直接规则。(我最近在一次采访中被问到这个问题)。据我所知,这取决于代理的配置,以便在任何给定时间点它可以处理多少个连接。
但是,只是想知道在给定时间点可以扩展多少个最大消费者组(每个有 10 个消费者)?
假设我有一个 kafka 主题,大约有 10 个分区,我知道每个消费者组在任何给定时间都应该有 10 个消费者从主题中读取,以实现最大的并行性。
但是,我想知道对于一个主题在任何给定时间点可以处理的消费者组的数量是否有任何直接规则。(我最近在一次采访中被问到这个问题)。据我所知,这取决于代理的配置,以便在任何给定时间点它可以处理多少个连接。
但是,只是想知道在给定时间点可以扩展多少个最大消费者组(每个有 10 个消费者)?
在 Kafka 中,对于可以为特定主题实例化的消费者组的数量没有明确的限制。但是,您应该知道,消费者群体越多,对网络利用率的影响就越大。
正如上面所说,最多几千应该没问题。对于那些将登陆这里的人(像我一样)想知道成千上万的连接(例如将物联网设备直接连接到 kafka),似乎 kafka 不是为此而设计的,至少根据这个博客。
从概念上讲,您可以将消费者组视为恰好由多个进程组成的单个逻辑订阅者。作为一个多订阅者系统, Kafka 自然支持为给定主题拥有任意数量的消费者组, 而无需复制数据(额外的消费者实际上非常便宜)。
正如 Kafka 0.9 的 API 文档中给出的那样,Kafka 可以支持给定主题的任意数量的消费者组。
链接: http://kafka.apache.org/090/javadoc/index.html?org/apache/kafka/clients/consumer/ KafkaConsumer.html