随笔分类 -  kafka

kafka 记录
摘要:这里主要更新一下kafka 0.10.0版本的message消息格式的变化。 message 的格式在0.10.0的版本里发生了一些变化(相对于0.8.2.1的版本)这里把0.10.0的message的代码分析一下。 message的格式定义在源代码目录message目录里的Message.scal 阅读全文
posted @ 2016-09-06 10:21 vv.past 阅读(707) 评论(0) 推荐(0) 编辑
摘要:这里主要分析kafka 客户端实现 (代码分析以perl kafka实现为准) kafka客户端分为生产者和消费者,生产者发送消息,消费者获取消息. 在kafka协议里客户端通信中用到的最多的四个协议命令是fetch,fetchoffset,send,metadata.这四个分别是获取消息,获取of 阅读全文
posted @ 2016-08-12 18:13 vv.past 阅读(1563) 评论(0) 推荐(0) 编辑
摘要:这里主要分析一下message的格式. 一条message的构成由以下部分组成 由上面可看出一个消息的内容部分的起始位置实际上是keyoffset+keysize+valuesizeLength 一条完整的消息由上面几部分组成. 这里是用java实现的一个打印log文件里的offset和对应消息的小 阅读全文
posted @ 2016-08-12 15:00 vv.past 阅读(486) 评论(0) 推荐(0) 编辑
摘要:这里主要分析FileMessageSet类 这个类主要是管理log消息的内存对象和文件对象的类.源代码文件在log目录下.这个类被LogSegment类代理调用用来管理分片. 下面是完整代码.代码比较简单.就不做过多说明了.这个类是MessageSet抽象类的实现类. 阅读全文
posted @ 2016-08-08 13:43 vv.past 阅读(810) 评论(0) 推荐(0) 编辑
摘要:这里分析MessageSet类 MessageSet是一个抽象类,定义了一条log的一些接口和常量,FileMessageSet就是MessageSet类的实现类.一条日志中存储的log完整格式如下 offset+message_size+message MessageSet定义log的一般接口的格 阅读全文
posted @ 2016-08-08 12:28 vv.past 阅读(884) 评论(0) 推荐(0) 编辑
摘要:这里主要介绍log管理,读写相关的类的调用关系的介绍. 在围绕log的实际处理上.有很多层的封装和调用.这里主要介绍一下调用结构和顺序. 首先从LogManager开始. 调用关系简单如下:LogManager->Log->LogSegment->FileMessageSet->ByteBuffer 阅读全文
posted @ 2016-08-08 12:14 vv.past 阅读(323) 评论(0) 推荐(0) 编辑
摘要:这里分析kafka LogSegment源代码 通过一步步分析LogManager,Log源代码之后就会发现,最终的log操作都在LogSegment上实现.LogSegment负责分片的读写恢复刷新删除等动作都在这里实现.LogSegment代码同样在源代码目录log下. LogSegment是一 阅读全文
posted @ 2016-08-08 11:34 vv.past 阅读(1283) 评论(0) 推荐(0) 编辑
摘要:这里分析一下message的封装类ByteBufferMessageSet类 ByteBufferMessageSet类的源代码在源代码目录message目录下.这个类主要封装了message,messageset,messageandoffset等类的对象.在Log类中读写log的时候基本上都是以 阅读全文
posted @ 2016-08-04 18:24 vv.past 阅读(932) 评论(0) 推荐(0) 编辑
摘要:这里分析Log对象本身的源代码. Log类是一个topic分区的基础类.一个topic分区的所有基本管理动作.都在这个对象里完成.类源代码文件为Log.scala.在源代码log目录下. Log类是LogSegment的集合和管理封装.首先看看初始化代码. 上面是Log class初始化的部分.这个 阅读全文
posted @ 2016-08-03 17:47 vv.past 阅读(2370) 评论(0) 推荐(0) 编辑
摘要:这里分析kafka 0.8.2的LogManager logmanager是kafka用来管理log文件的子系统.源代码文件在log目录下. 这里会逐步分析logmanager的源代码.首先看class 初始化部分. 上面这个函数就是kafkaserver里创建logmanager对象的入口.下面看 阅读全文
posted @ 2016-08-02 18:25 vv.past 阅读(1577) 评论(0) 推荐(0) 编辑
摘要:这里记录kafka源代码笔记.(代码版本是0.8.2.1) kafka的源代码如何下载.这里简单说一下. git clone https://git-wip-us.apache.org/repos/asf/kafka.git kafka 通过官网给出的链接clone项目代码之后.一般只能得到trun 阅读全文
posted @ 2016-08-01 17:44 vv.past 阅读(2283) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示