【问题标题】:Setting a high number of partitions设置大量分区
【发布时间】:2019-03-19 17:26:57
【问题描述】:

我们正在考虑一个具有 3 个节点和大量消费者的 Kafka 集群的架构。我们看到分区数量很少,例如3,以及更多的消费者,例如16,实际消费数据的消费者只有 3 个,因为他们是现有分区的所有者。要查看所有者,我们执行以下操作:

$ bin/kafka-run-class.sh kafka.tools.ConsumerOffsetChecker --zookeeper localhost:2181 --group consumer_group

Group           Topic     Pid Offset logSize Lag Owner
consumer_group statistics 0   5335   5373    38  consumer_group_balthasar-1449651803301-63a1d620-0
consumer_group statistics 1   5335   5374    39  consumer_group_balthasar-1449651803820-35a84426-0
consumer_group statistics 2   5335   5374    39  consumer_group_balthasar-1449651803934-2b3cc1bd-0

能够拥有许多消费者的一种解决方案是将分区数量增加到较高的数量,例如1024. 这会给运行 Kafka 的机器带来更多负载,但这种负载会不会很疯狂?将运行 Kafka 的机器具有 64GB RAM 和 Xeon E5-2620 CPU(6 个主频为 2GHz 的内核,总共 24 个硬件线程)。

还有其他理由不使用如此多的分区吗?

【问题讨论】:

    标签: apache-kafka


    【解决方案1】:

    在 kafka 用户邮件列表中,有人回答并提供了以下文章:http://www.confluent.io/blog/how-to-choose-the-number-of-topicspartitions-in-a-kafka-cluster/

    它说:

    根据经验,如果您关心延迟,最好将每个代理的分区数限制为 100 x b x r,其中 b 是 Kafka 集群中代理的数量,r 是复制因子。

    我们正在应用这条规则,目前进展顺利。

    【讨论】:

      猜你喜欢
      • 2023-04-09
      • 1970-01-01
      • 1970-01-01
      • 2015-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多