Kafka源码分析及图解原理之Broker端
每一个LogSegment都包含一些文件名一致的文件集合。文件名的固定是20位数字,如果文件名是00000000000000000000代表当前LogSegment的第一条消息的offset(偏移量)为0,如果文件名是00000000000000000097代表当前LogSegment的第一条消息的offset(偏移量)为97。日志文件有多种后缀的文件,重点关注.index、.timestamp、.log三种类型文件即可。
4.2 索引与日志文件 kafka有2种索引文件,第一种是offset(偏移量)索引文件,也就是.index结尾的文件。第二种是时间戳索引文件,也就是.timeindex结尾的文件。 我们可以用kafka-run-class.sh来查看offset(偏移量)索引文件的内容: ![]() 可以看到每一行都是offset:xxx position:xxxx。 这两者没有直接关系。
那么第一行的offset:12 position:4423是什么意思呢?它代表偏移量从0-12的消息的物理地址在0-4423。 同理第二行的offset:24 position:8773的意思也能猜得出来:它代表偏移量从13-24的消息的物理地址在4424-8773。 我们可以再用kafka-run-class.sh来看下.log文件的文件内容,关注里面的baseOffset和postion的值。你看看和上面说的对应的上吗。 ![]() 4.3 如何用offset查找 按上面的例子,如何查询偏移量为60的消息 根据offset首先找到对应的LogSegment,这里找到00000000000000000000.index 通过二分法找到不大于offset的最大索引项,这里找到offset:24 position:8773 打开00000000000000000000.log文件,从position为8773的那个地方开始顺序扫描直到找到offset=60的消息 ![]() 【编辑推荐】
点赞 0 (编辑:52站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 怎样关闭win10升级提示教程
- Windows 10系统,专业版与企业版有什么区别?
- Linux系统这11个发行版,你认识多少个?
- Windows11开发团队正尝试在不影响性能的情况下增加更多特效
- 怎样加快电脑启动速度
- PowerShell – Windows 10上缺少Install-WindowsFeature(和
- windows-server-2008 – Windows Server 2008:当NIC有多个
- 盘点阿里巴巴 33 个开源项目,你用过哪几个?
- 联想Win11笔记本Yoga Slim 7 Pro发布:起售价1449美元 最高
- 通过Internet在Windows上安装Linux文件系统的最佳方法?