Kafka支持数百万个分区吗?

svmlkihl  于 2021-06-04  发布在  Kafka
关注(0)|答案(1)|浏览(505)

如果一个主题有数百万个分区,会有什么问题吗?由于我们的业务需求,我们正在考虑是否可以为kafka中的每个用户制作一个分区。我们有数百万用户。任何洞察都将不胜感激!

aurhwmvo

aurhwmvo1#

是的,如果您有数百万个分区,我认为您最终会遇到问题,原因如下:
(最重要的是!!)客户来来往往,因此您需要不断更改分区的数量,或者有大量未使用的分区(因为您不能减少主题中的分区数量)。
更多的分区需要更多的打开文件句柄:更多的分区意味着磁盘上有更多的目录和段文件。
更多的分区可能会增加不可用性:计划内的故障会一次从代理中移除一个领导者,每个分区的停机时间最少。在一次严重的失败中,所有的领导人都会立即失去联系。
更多的分区可能会增加端到端延迟:为了让使用者看到消息,必须提交消息。代理使用单个线程复制来自前导的数据,从而导致每个分区的开销。
更多的分区可能需要客户机中更多的内存
confluent的博客提供了更多关于如何选择kafka集群中的主题/分区数的详细信息?。
此外,根据confluent针对Kafka开发者的培训材料,建议:
“当前限制(2-4k分区/代理,100s k分区/集群)是最大值。大多数环境都远低于这些值(每个代理的值通常在1000-1500范围内或更低)。”
这个博客解释说“apachekafka支持每个集群200k个分区”。
这可能会随着zookeeper kip-500的更换而改变,但是,再一次,看看上面的第一个要点,这仍然是一个不健康的软件设计。

相关问题