【问题标题】:More Kafka consumers than partitionsKafka 消费者多于分区
【发布时间】:2018-10-03 20:26:28
【问题描述】:

我看到了很多关于这个主题的问题,但我不太相信。有没有办法让更多不同的消费者使用不同的group.id 值而不是分区号? 在 java 代码中实现这一点是一个很好的解决方法吗?

【问题讨论】:

    标签: java apache-kafka kafka-consumer-api


    【解决方案1】:

    Kafka 中的消费者组是并行处理数据的一种方式。多个消费者可以加入一个消费者组,这样每个消费者都可以消费来自 Kafka Topic 不同分区的数据。

    除了上述之外,Kafka 还可以使用group.id 跟踪特定组的活跃消费者。

    因此,消费者多于分区是无效的,因为每个分区仅由消费者组中的一个消费者消费,以维持所消费消息的总顺序。 Kafka 仅提供所有分区的总排序,而不是维护每个分区的顺序。

    但是,您仍然可以让多个消费者组消费同一个主题,这更像是发布/订阅而不是点对点。

    【讨论】:

      【解决方案2】:

      如果您有不同的组 id,则不会将分区分配给同一个使用者组。

      基本上,如果您有 N 个分区和 M 个不同的组 ID,则最多可以有 N * M 个消费者线程从该主题轮询。再多的,你就超额订阅了一个特定的组。

      【讨论】:

        猜你喜欢
        • 2015-08-19
        • 1970-01-01
        • 2017-01-04
        • 2016-06-12
        • 2017-10-17
        • 1970-01-01
        • 2019-08-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多