4. Kafka 存储形式
4.1 存储结构
通过上图,我们可以大概了解到一点,Kafka是通过主题进行对数据进行分类的,而一个主题可以划分为多个partition分区,同一topic的不同partition可能分布在不同机器上,进而实现分布式高性能的特点。对于partition在系统中是一个文件夹,其中可能包含多个segment。
我们可以设置segment在内存中的大小,当保存的消息大于segment的大小时,会再建一个segment。一个segment段由三个文件组成,分别为 .log
, .index
, .timeindex
.
topic结构
- topic包含多个partition,
- topic只是逻辑概念,不涉及到存储,partition才是物理概念
- 同一topic的不同partition可能分布在不同机器上
partition结构
- partition是一个文件夹,其中包含多个segment
- 如果其中有n个segment,则共有2*n个文件
- 每个partition是一个有序的队列
- partition中的每条消息都会分配一个有序的id,即offset