Kakfa系列2----Segment和Index介绍

kafka将一个partiton分割成很多个segment文件,segment下分为几部分
- index文件:索引文件,与log文件有一定的关联关系
- log文件:真正存储数据的文件

例如:
segment结构.png
这是我的topic下一个partition下中segment文件结构(为了方便调试,将segment大小设置为10K,图中包含2个segment:000.和238.)
其文件名的规则如下:
- 同一个segment下,index和log名字相同
- 下一个segment是上一个segment的lastOffset(这个offset后面会说)

index文件有什么用呢?其实就是一个索引,记录了一条消息在log文件中的位置,查找消息的时候先从index获取位置,然后就可以定位到消息在log文件具体哪个地方
index采用了稀疏索引的方式去存储,不是每来一条消息就记录一个索引,而是当消息大于某个值的时候,就会记录一次索引,默认是4KB
那么index是如何工作的,我们举个例子来说明会更加的方便理解,假设segment配置了10KB(log.segment.bytes),每1KB记录一次索引(log.index.interval.bytes参数),topic下只有1个partition,一个消息大小为43

此时发送多个消息,

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值