Apache Kafka中Log与Partition的区别是什么?
Log与Partition的核心区别(以Kafka为例)
你的猜测方向是对的,二者本质是抽象逻辑概念与物理存储实现的对应关系,具体拆解如下:
Partition(分区):是分布式消息系统中用于横向扩展、负载均衡的核心逻辑单元。它是一个有序、不可变的消息序列的抽象定义——比如Kafka中每个Topic会被拆分为多个Partition,消息会被分配到不同Partition中,每个Partition可独立被消费、复制,以此实现高吞吐量与容错性。你可以把它理解成一个“逻辑队列”,只定义消息的组织规则与分配方式,不涉及具体存储细节。
Log(日志):是Partition对应的物理存储载体。每个Partition在磁盘上对应一个专属目录,目录内包含多个按大小或时间分割的段文件(Segment File),这些段文件的集合就是该Partition的Log。消息会被追加写入Log的末尾段文件,旧段文件会被定期清理或归档。简单来说,Log就是把Partition这个逻辑队列里的消息,实实在在落地到磁盘的文件集合。
打个直观的比方:Partition就像你电脑里的“工作文档”文件夹(逻辑分类),而Log就是文件夹里所有的Word、Excel文件(物理存在)——没有文件,文件夹只是个空的逻辑分类;没有文件夹,零散的文件也缺乏统一的组织规则。
内容的提问来源于stack exchange,提问作者ABu
相关产品推荐
相关产品推荐

