微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

kafka是否支持数百万个分区?

如何解决kafka是否支持数百万个分区?

如果一个主题有数百万个分区,我们会遇到任何问题吗? 由于业务需求,我们正在考虑是否可以为kafka中的每个用户创建一个分区。 我们有数百万的用户。 任何见识将不胜感激!

解决方法

是的,我认为如果拥有数百万个分区,您最终会遇到问题,原因如下:

  • (最重要的是!)客户来来往往,因此您将需要不断更改分区数或拥有大量未使用的分区(因为您无法减少主题中的分区数)

  • 更多分区需要更多打开文件句柄:更多分区意味着磁盘上更多目录和分段文件。

  • 更多分区可能会增加不可用性:计划中的故障会使领导者一次从一个Broker中移出一个Leader,每个分区的停机时间最少。在一次严重失败中,所有领导者都立即无法使用。

  • 更多分区可能会增加端到端延迟:要让消费者看到该消息,必须提交该消息。代理通过单个线程从领导者复制数据,从而导致每个分区的开销。

  • 更多分区可能需要客户端中更多的内存

Confluent在How to choose the number of topics/partitions in a Kafka cluster?的博客中提供了更多详细信息。

此外,根据Confluent为Kafka开发人员提供的培训材料,建议:

“当前限制(2-4K分区/代理,每个集群100s K分区)是最大值。大多数环境都远远低于这些值(每个代理通常在1000-1500范围内或更低)。”

blog解释说“ Apache Kafka每个群集支持200K分区”。

这可能会随着Zookeeper KIP-500的更换而改变,但是再次来看上面的第一个要点仍然是不健康的软件设计。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。