Kafka 源代码分析之log框架介绍
这里主要介绍log管理,读写相关的类的调用关系的介绍.
在围绕log的实际处理上.有很多层的封装和调用.这里主要介绍一下调用结构和顺序.
首先从LogManager开始.
调用关系简单如下:LogManager->Log->LogSegment->FileMessageSet->ByteBufferMessageSet->MessageSet->Message
LogManager作为kafka一个子系统在管理log的工作上必不可少.LogManager通过Log类来为每一个topic分区建立一个管理topic分区的集合.然后所有的全局上的动作都在这个对象集上处理.比如log的保留,刷新,定时更新恢复检查点文件工作.
Log作为LogSegment一个集合对象.管理每个topic分区下的所有分片对象.
LogSegment对FileMessageSet做了代理.管理一个分片的事物动作.
FileMessageSet为每个分片文件实现了内存对象和文件对象.同时负责读写一条log本身.是MessageSet的实现类.
ByteBufferMessageSet用来创建log的内存对象.
MessageSet用来定义一条log格式和接口的(log的格式为head+message)
Message用来定义一条message的格式和方法.
其他子系统中关于log部分会后续继续补充

浙公网安备 33010602011771号