kafka存储结构

博客详细介绍了Kafka的存储结构,包括topic、partition、segment及其索引文件结构。每个partition由多个segment组成,每个segment包含索引文件和数据文件。message结构包含offset、MessageSize、crc32校验码等信息。索引文件提供高效查找,通过offset在partition内进行O(1)查找。存储结构设计考虑了空间效率、水平扩展及查找效率。
摘要由CSDN通过智能技术生成

相关概念

  • 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索引文件结构

  • 存储一系列的元数据,每条元数据就是一
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值