apache-kafka - 消费者组可以跨越多个服务器吗?

标签 apache-kafka kafka-consumer-api

在 Kafka 中创建消费者组时,它是否会创建一个运行在同一 JVM 进程上的工作池,或者消费者组是否可以跨越多个计算机/节点?

如果它跨越多台计算机,那么跟踪偏移量等将很困难。

最佳答案

"does it create a pool of workers that run on the same jvm process or could a consumer group span multiple computers/nodes?"

这取决于您为您的消费者组创建了多少个 jvm 进程。而且,是的,它可以跨越多个计算机/节点。 Kafka 的组协调器然后将单独的线程分配给主题的分区。请注意,同一消费者组中的一个消费者(jvm 进程)最多可以使用单个 TopicPartition。

"If it spans multiple computers then keeping track of offsets etc. will be hard."

Kafka 通过将所有元信息和每个消费者组的进度集中存储在一个名为“__consumer_offsets”的内部主题中来简化此过程,当且仅当所有节点都属于同一集群时,该主题在整个集群中可用。

关于apache-kafka - 消费者组可以跨越多个服务器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65220462/

相关文章:

java - 使用java api创建Kafka主题,无需zookeeper

apache-spark - 来自 Kafka 源的 Spark Streaming 返回检查点或倒带

apache-storm - 将storm的字数统计拓扑与kafka集成

java - Kafka - Confluent - Java 版本支持

python - 为什么kafka生产者向我显示错误kafka.conn:<容器ID>:9092的DNS查找失败?

apache-kafka - Flink Kafka Stream 相对于 Spark Kafka Stream 的优势?和 Flink 上的 Kafka Stream?

apache-kafka - Kafka主题创建最佳实践

python - 如何使用python列出Kafka消费者组

apache-kafka - 消费者 'group_name' 组永远重新平衡

apache-kafka - 如何在kafka中定义多个序列化器?