Kafka中每个主题的一个消费者线程针对多个分区是否会导致延迟?

时间:2019-01-21 18:24:49

标签: apache-kafka kafka-consumer-api

我们的kafka设置如下:

    每个主题
  1. 30个分区
  2. 1个使用者线程

我们将这种方式配置为能够在将来扩大规模。

我们希望通过添加分区来最大程度地减少重新平衡的时间,因为延迟对我们非常重要,并且在重新平衡过程中,消息可能会停留到协调阶段完成

每1个主题有1个使用方线程并具有多个分区会以某种方式影响整体消息传递消耗延迟吗?

1 个答案:

答案 0 :(得分:0)

Kafka群集中的更多分区会导致更高的吞吐量,但是,您需要意识到分区的数量也会影响可用性和延迟。

通常会有更多分区

  • 通向更高的吞吐量
  • 需要更多打开文件句柄
  • 可能会增加不可用性
  • 可能会增加端到端延迟
  • 可能需要客户端中更多的内存

您需要研究取舍,并确保已选择满足吞吐量,延迟和所需资源要求的分区数量。

有关更多详细信息,请参见this blog post from Confluent.

我的看法:做一些测试并写下您的发现。例如,尝试在具有5、10、15,...个分区的主题上运行单个使用者,衡量影响并选择满足您要求的配置。最后,问问自己是否需要x分区。归根结底,如果您需要更多的分区,则不必担心重新平衡等问题。Kafka的设计具有可扩展性。