Kafka 采用分区(Partition)的设计,核心目的可以总结为三个关键词:扩展性(Scalability)、并发/吞吐量(Concurrency/Throughput) 和 可用性(Availability)。 以下是详细的深度解析: 1. 扩展性(存储层面的水平扩展) Kafka 中的 Topic(主题)是一个逻辑概念,而 Partition(分区)是物理概念。 突破单机限制: 如果一个 Topic 只有一份数据(不分区),那么这个 Topic 的大小受限于单个 Broker(服务器)的磁盘容量。但在大数据场景下,一个 Topic 可能包含 TB 甚至 PB 级的数据,单台机器根本存不下。 分布式存储: 通过引入分区,Kafka 可以将一个巨大的 Topic 切分成多个 Partition,并将这些 Partition 分散存储在集群中的不同 Broker 上。这意味着 Topic 的容量不再受限于单台机器,可以通过增加 Broker 数量来无限水平扩展存储能力。 2. 提高并发与吞吐量(计算层面的并行处理) 这是分区设计最直接的性能优势。 写入并行(Producer):...