为什么__consumer_offsets分区的默认值为50?

时间:2017-09-20 23:11:27

标签: apache-kafka

为什么我们需要__consumer_offsets分区计数具有默认值50?即offsets.topic.num.partitions默认值为50.我们甚至可以使用offsets.topic.num.partitions = 1.

2 个答案:

答案 0 :(得分:0)

__consumer_offsets用于不同的场景,例如当消费者开始工作以获取初始偏移量时,或者当它提交其最后处理的偏移量时。因此,根据它们如何提交偏移量(默认情况下自动生成)以及消费者和代理商的数量,__consumer_offsets的分区数量可能会对偏移量跟踪的性能和可靠性产生直接影响。因此,默认值可能是大多数设置的良好起点,但您应该知道需要根据应用程序对其进行优化。

答案 1 :(得分:0)

Kafka通过在分区上分割数据实现扩展,允许在多个服务器上分发数据。对于用于存储使用者组数据的内部主题尤其如此。

此外,由于此设置在部署后无法更改,因此我有一个相对较大的默认值。这使得集群可以从少数几个代理商发展到几十个代理商,而不会遇到这个内部主题的扩展问题。

出于开发目的,如果您的硬件资源非常有限,可以将其设置为1但我不建议使用它。根据我的经验,我发现在我的开发环境中有50个分区的成本可以忽略不计。