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 11用户现可使用一系列新Emoji 依然是2D 用户吐槽中
- 电脑系统怎样重装win10专业版密钥
- 如何在Centos 8/RHEL 8上安装和配置VNC服务器
- 如何在Windows中将一个非常大的HTML文件转换为PDF
- Oracle Autonomous Linux:用于云计算的自我更新、自我修补
- 最简单的win10系统之家重装方法说明
- windows-server-2008-r2 – Windows 2008 R2 gpupdate锁定我
- LiveMigration实战之三:ISCSI Target部署配置
- 如何或重置或修复Windows 10中的单个Office 365应用程序
- 如何备份Windows Azure虚拟机?