相关概念
- topic 主题,特指kafka处理的消息源的不同分类
- partition topic物理上的分组,一个topic可以分为多个partition
- message 消息,是通信的基本单位
存储结构
topic结构
- topic包含多个partition,
- topic只是逻辑概念,不涉及到存储,partition才是物理概念
- 同一topic的不同partition可能分布在不同机器上
partition结构
- partition是一个文件夹,其中包含多个segment
- 如果其中有n个segment,则共有2*n个文件
- 每个partition是一个有序的队列
- partition中的每条消息都会分配一个有序的id,即offset
segment结构
- 由一对文件组成,一个索引文件,一个数据文件
- 文件命名规则
- 上一个segment在partition中的最大offset数值,即,比如00000000000000345678.log文件中的第一条消息的offset为345679
- 最大为64位的long,不足位数补0,如00000000000000345678.log
- 索引文件后缀.index,日志数据文件后缀.log
segment索引文件结构
- 存储一系列的元数据,每条元数据就是一