【博学谷学习记录】超强总结,用心分享|Kafka数据的存储和查询机制

Kafka数据的存储机制

数据存放的位置
  1. 取决于${KAFKA_HOME}/config/server.properties这个配置文件中的log.dirs 配置项
数据的存放形式
  1. 在数据的存储目录下,根据topic名和分片编号创建一个目录并存储对应分片数据
    1. image.png
  2. 以分文件的形式存储数据片段,每个数据片段称为segment,是由2个文件组成的
    1. log文件:存储消息数据
    2. index文件:存储log文件数据索引数据
    3. image.png
  3. 每个log文件默认最大为1G,达到阈值后会滚动形成一个新log文件及index文件,1G大约存储70万条数据
  4. log和index的文件名是消息的起始偏移量
分文件存储的原因
  1. 如果所有数据存储在一个文件中,删除过期数据时,需要重新遍历文件,麻烦且费时
  2. 切分文件后,删除过期数据,直接根据文件的日期属性判断即可
  3. 默认保留168小时(7天)内修改过的数据文件

Kafka的查询机制

数据集如下

image.png

  1. 确定消息被存在哪个segment片段中
  2. 去对应的segment中找到index文件,从里面查询消息的偏移量,确定数据在log文件中的位置
  3. 根据返回的消息在log文件中的具体位置,基于磁盘顺序查询的方式查询log文件,找到加粗样式对应位置上的数据
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值