栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Kafka源码阅读-LogSegment

Kafka源码阅读-LogSegment

Kafka源码阅读-LogSegment

日志段代码解析地址位于core工程下的/scala/log/LogSegment.scala。

该文件中定义了以下三个scala对象:

1. LogSegment类定义

log:消息的日志文件
lazyOffsetIndex:偏移量索引文件
lazyTimeIndex:时间戳索引文件
txnIndex:事务索引文件
baseOffset:每个日志文件的其实偏移量baseOffset,磁盘中存储文件的命名采用的就是baseOffset
indexIntervalBytes:索引文件中记录条数的间隔大小,默认大小为4K。与参数log.index.interval.bytes对应
rollJitterMs:The maximum random jitter subtracted from the scheduled segment roll time
time:计时统计的实例
2. append执行流程

执行流程图如下:

步骤:

  • 判断消息内容是否为空

  • 判断log文件的物理偏移量是否为0

  • 校验消息偏移量offset合法

  • 写入消息

  • 更新当前最大时间戳和所属消息偏移量

  • 当写入字节数大于4K,新增索引

  • 更新已写入字节数

3. 更新index和timeindex方法

offsetIndex的append方法:

timeIndex的append方法:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/488011.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号