我认为如果你有数百万个分区,就会出现问题,原因如下:- (最重要的!!)客户来来去去,所以您将需要不断更改分区数或有大量未使用的分区(因为您不能在主题内减少分区数)。 - 更多的分区需要更多的打开文件句柄:更多的分区意味着磁盘上有更多的目录和段文件。 - 更多的分区可能会增加不可用性:计划故障逐个将领导者从代理中移除,每个分区的停机时间都很短。在硬故障中,所有领导者立即不可用。 - 更多的分区可能会增加端到端延迟:要让消费者看到消息,必须提交该消息。代理使用单个线程从领导者复制数据,因此每个分区都会产生开销。 - 更多的分区可能需要更多的客户端内存。Confluent的博客提供了更多详细信息:如何选择Kafka集群中的主题/分区数量?。此外,根据Confluent的Kafka开发人员培训资料,建议如下:“当前限制(2-4K个分区/代理,每个集群数十万个分区)是最大值。大多数环境远低于这些值(通常在每个代理1000-1500个范围内或更少)。”这篇博客解释了“Apache Kafka支持每个集群20万个分区”。这可能会随着Zookeeper的替换而改变,KIP-500但是,再次看看上面的第一个要点,这仍将是一种不健康的软件设计。