【发布时间】:2018-10-03 20:26:28
【问题描述】:
我看到了很多关于这个主题的问题,但我不太相信。有没有办法让更多不同的消费者使用不同的group.id 值而不是分区号?
在 java 代码中实现这一点是一个很好的解决方法吗?
【问题讨论】:
标签: java apache-kafka kafka-consumer-api
我看到了很多关于这个主题的问题,但我不太相信。有没有办法让更多不同的消费者使用不同的group.id 值而不是分区号?
在 java 代码中实现这一点是一个很好的解决方法吗?
【问题讨论】:
标签: java apache-kafka kafka-consumer-api
Kafka 中的消费者组是并行处理数据的一种方式。多个消费者可以加入一个消费者组,这样每个消费者都可以消费来自 Kafka Topic 不同分区的数据。
除了上述之外,Kafka 还可以使用group.id 跟踪特定组的活跃消费者。
因此,消费者多于分区是无效的,因为每个分区仅由消费者组中的一个消费者消费,以维持所消费消息的总顺序。 Kafka 仅提供所有分区的总排序,而不是维护每个分区的顺序。
但是,您仍然可以让多个消费者组消费同一个主题,这更像是发布/订阅而不是点对点。
【讨论】:
如果您有不同的组 id,则不会将分区分配给同一个使用者组。
基本上,如果您有 N 个分区和 M 个不同的组 ID,则最多可以有 N * M 个消费者线程从该主题轮询。再多的,你就超额订阅了一个特定的组。
【讨论】: