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 (编辑:站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 如何解决Windows 10中Outlook中的附件问题
- windows-server-2008 – 不明原因的慢速千兆网络速度
- 空闲CPU在做什么?
- windows-server-2008 – 完全禁用“此程序已停止工作等”对
- 你用的Windows操作系统是不是盗版?微软知道吗
- 如何在Linux下使用fstrim延长SSD驱动器的寿命
- 微软官方预热Win11秋季新品发布会 将公布新的Surface Pro 8
- windows-server-2003 – 如何审核文件以查看谁删除了文件?
- 配置管理 – 我可以使用什么工具来管理Windows Server环境的
- 别小看这10个命令行工具,助你实现实时 Linux 系统性能监控
- Linux使用Pidstat命令查看进程状态信息
- windows-server-2003 – 需要另一个域控制器
- windows-xp – 是否可以在Windows XP中从命令行禁
- 如何改善Windows XP启动时间?
- windows-server-2012-r2 – 无法激活Windows Ser
- windows-server-2012 – 识别Windows 2012 Serve
- Windows桌面虚拟化而不是替换工作站
- windows-xp – 如何在XP中创建Windows服务
- windows-server-2008 – Windows 7 x64 Ultimate
- 华为方舟编译器正式开源了,采用自主平台托管