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部分会后续继续补充

 

posted @ 2016-08-08 12:14  vv.past  阅读(329)  评论(0)    收藏  举报