kafka的消息存储

消息的保存路径:

默认情况下是保存在 /temp/kafka-log中

存储方式

使用日志文件+索引的方式

消息写入

使用了顺序写入和零拷贝来提升写入性能,consumer和producer都是使用的二进制数据,避免了格式的转化

日志的分片

当日志文件过大的时候,会严重影响性能,于是当日志文件达到一定的大小的时候会对日志文件进行分片,这个大小默认是1GB,可以通过
long.segment.bytes这个配置来调整,日志的片段叫做segment
segment由两大部分组成:索引(一种是offset索引,一种是时间索引)和数据,他们成对出现后缀分别是index和log

segment命名规则:patition全局的第一个sequment从0开始,后续的每个segment文件名为上一个segment的最后一条消息的offset+1.数值最大为64位long大小,没有的位数补零

如何查找消息?

这里写图片描述
如图所示,左边一列是offset,右边一列是position(物理偏移量4053~4559的position都是一样的),比如说查找offset为4055的消息。那么会去找消息对应的segment,然后通过二分法去找index文件对应的offset区间,会找到4053,然后根据4053找到对应的position80899,然后去日志文

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值