当前位置: 首页 > 知识库问答 >
问题:

kafka主题中理想的分区数是多少?

罗昕
2023-03-14

我正在学习Kafka,并试图为我最近的搜索应用程序创建一个主题。被推送到Kafka主题的数据被认为是一个很高的数字。

我的kafka集群有3个代理,并且已经为其他要求创建了主题。

现在,我应该为最近的搜索主题选择多少个分区?如果我没有明确提供分区号呢?选择分区号时需要考虑哪些事项?

共有2个答案

韦绍晖
2023-03-14

在决定是否分区之前,我会考虑评估两件主要的事情。

>

  • 第一点是,一个消费群体的分区和消费者如何共同行动。简单地说,一个使用者可以使用来自多个分区的消息,但一个分区不能被多个使用者使用。这意味着,没有分区是有意义的

    第二点是,从延迟和整个角度来看,您的需求是什么。简单地说,延迟是执行某些操作或产生某些结果所需的时间。延迟是以时间为单位来衡量的——小时、分钟、秒、纳秒或时钟周期。吞吐量是每单位时间内执行的此类操作或产生的结果的数量

    现在,回到kafka立场的比较,一般来说,Kafka集群中的更多分区会导致更高的吞吐量。但是,如果您真的在寻找低延迟,您应该小心这个数字。

  • 许天逸
    2023-03-14

    这将取决于消费者的吞吐量。如果您每秒产生100条消息,并且您的消费者每秒可以处理10条消息,那么您将需要至少10个分区(产生/消费)和10个消费者实例。如果您希望此主题能够处理未来的增长,那么您将希望将分区计数增加得更高,以便您可以添加更多消费者实例来处理新卷。

    另一条建议是将分区计数设为一个高度可整除的数字,以便可以在保持负载平衡的同时放大/缩小使用者。例如,如果选择10个分区,则必须有1个、2个、5个或10个使用者实例,以使每个处理来自相同数量的分区。如果选择12个分区,则可以使用1、2、3、4、6或12个消费者实例来平衡。

     类似资料:
    • 我有Kafka集群有3经纪人和一对夫妇的主题,每个有5分区。现在我想为分区设置复制因子。 我可以为kafka主题的分区设置的最大复制因子是什么?

    • 我开始学习Kafka用于企业解决方案。 在我阅读的过程中,我脑海中浮现出一些问题: > 当一个生产者正在生成一个消息--它会指定它想要将消息发送到的主题,是这样吗?它关心分区吗? 当订阅服务器运行时-它是否指定其组id,以便它可以是同一主题的使用者集群的一部分,或者是该组使用者感兴趣的几个主题的一部分? 每个消费者组在代理上有一个对应的分区还是每个消费者都有一个? 分区是由代理创建的,因此不是消费

    • Kafka主题分区偏移位置始终从0或随机值开始,如何确保使用者记录是分区中的第一条记录?有没有办法找出答案?如果有的话,请让我知道。谢谢。

    • 通过Kafka文档和各种其他资源,我了解到Kafka中的消息被组织成主题。此外,主题可以分解为多个分区,每个分区可以托管在不同的服务器上。这提供了冗余和可伸缩性。 我不确定这里的“破碎”这个词是什么意思。这是否意味着,如果添加到主题的消息是,例如“1 2 3 4 5 6 7”,那么在将其分解为分区后,我们将有一个分区仅包含整个主题的子部分。就像一个分区有“1 2 3”,而另一个分区有“4 5 6”

    • 简单问题: 假设我有一个具有3个分区的主题:Topic:StateEvents P1、P2和P3。 让我们假设生产者生成20条消息: 1, 2, 3, ..........20 我的问题是: 当制作人生成这些消息时: 1)每个消息将只在且仅在1个分区?也就是说,1在P1,2在P2,3在P3,然后4在P1,5在P2,6在P3,以此类推? 2)如果#1为真,当消费者订阅时,它将订阅所有分区,以便获得所

    • 问题内容: 如何从代码中获取任何kafka主题的分区数。我研究了许多链接,但似乎没有一个起作用。 提及一些: http://grokbase.com/t/kafka/users/148132gdzk/find-topic-partition-count- through-simpleclient-api http://grokbase.com/t/kafka/users/151cv3htga/ge