【问题标题】:Kafka Consumers are balanced across topicsKafka 消费者在各个主题之间保持平衡
【发布时间】:2018-07-12 21:37:54
【问题描述】:

我正在创建 6 个具有相同组 ID 的消费者。所有消费者都订阅了 2 个主题,每个主题有 3 个分区。由于跨 2 个主题有 6 个消费者和 6 个分区,我希望使用所有消费者。但我没有看到所有消费者都在使用,有没有办法可以强制它重新平衡?

我正在使用 kafka 0.10.2.0

【问题讨论】:

    标签: kafka-consumer-api


    【解决方案1】:

    为同一消费者组中的消费者分配分区不是跨主题的。跟随发生在你身上的事情...... 您有 t1_p0、t1_p1 和 t1_p2(topic1 上的分区)和 t2_p0、t2_p1 和 t2_p2(topic2 上的分区)。然后你有一个有 6 个消费者 c1、c2、... c6 的消费者组。 当他们订阅topic1时,可能会发生c1、c2和c3得到t1_p0、t1_p1和t1_p2;其他 3 个消费者(c4、c5、c6)因为没有足够的分区而处于空闲状态。 当同一个消费者订阅topic2时,可能会发生同样的情况:c1、c2和c3得到t1_p0、t1_p1和t1_p2;其他 3 个消费者(c4、c5、c6)因为没有足够的分区而处于空闲状态。 我知道您希望 c4、c5 和 c6 从主题 2 中获取这些分区,但正如我所说,分区分配不会跨主题发生,而是针对同一主题中的分区。 在这种情况下,您有 c4、c5 和 c6 处于空闲状态且未使用。

    【讨论】:

    • 谢谢....由于消费者配置具有组 ID 参数并且可以订阅多个主题,我假设组中的消费者可以从跨主题的分区中消费。我将其更改为具有不同的组对于不同的主题,我认为它们是平衡的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-19
    • 2020-06-30
    • 2021-02-02
    • 2015-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多