【问题标题】:Are Kafka partitions consumed evenly?Kafka分区消耗均匀吗?
【发布时间】:2018-11-21 16:17:22
【问题描述】:

我有一个包含多个消费者的消费者组。每个消费者都被分配到一组分区。当消费者轮询选择消费分区的消息时?它是在消费者端完成的,还是 Kafka 服务器决定轮到哪个分区被消费?

我的一些分区有很多消息,但有些没有或很少。但是我仍然需要我的消费者平等地使用它分配的每个分区。所以我需要我的消费者快速遍历分区,最好从每个分配的分区轮询 x 条消息。

我使用https://github.com/appsignal/rdkafka-ruby 以防万一。

【问题讨论】:

    标签: apache-kafka


    【解决方案1】:

    Kafka 将要消费的分区分配为循环策略,为每个分区提供公平的消费机会。这样就避免了对分区的饥饿。

    另一方面,Kafka 不保证数据将按比例跨分区消耗,

    请查看此here的详细信息。

    【讨论】:

    • 但这不是我要问的。我知道如何将分区分配给消费者,但消费者如何使用分配给他们的分区?因为现在我可以看到我的消费者在几分钟内一直在消费来自一个分区的消息,即使在其他分配的分区中也有消息。然后,在某个时候,它会交换到另一个分区并开始使用一段时间。我需要更均匀地消耗我的分区。
    • 谢谢。 max.partition.fetch.bytes 似乎是我需要设置为较低值以使我的分区更均匀地消耗的关键配置。
    猜你喜欢
    • 1970-01-01
    • 2021-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-26
    • 1970-01-01
    • 2021-02-01
    • 2015-10-01
    相关资源
    最近更新 更多