05 2015 档案

摘要:这个是Kafka server的核心包,里面的类也很多,我们还是一个一个分析一、BrokerStates.scala定义了目前一个kafka broker的7中状态 ——1. NotRunning:未运行2. Starting:启动中3. RecoveringFromUncleanShutdown:... 阅读全文
posted @ 2015-05-28 08:47 huxihx 阅读(1643) 评论(2) 推荐(1) 编辑
摘要:四、TopicDeletionManager.scala管理topic删除的状态机,具体逻辑如下:TopicCommand发送topic删除命令,在zk的/admin/delete_topics目录下创建topic节点controller会监听该zk目录下任何节点的变更并为对应的topic开启删除操... 阅读全文
posted @ 2015-05-22 11:34 huxihx 阅读(874) 评论(0) 推荐(0) 编辑
摘要:Kafka集群中的一个broker会被作为controller负责管理分区和副本的状态以及执行类似于重分配分区之类的管理任务。如果当前的controller失败了,会从剩下的broker中选出新的controller。一、PartitionLeaderSelector.scala顾名思义就是为分区选... 阅读全文
posted @ 2015-05-13 17:25 huxihx 阅读(1159) 评论(2) 推荐(1) 编辑
摘要:Kafka 0.8.2引入了一个用Java写的producer。下一个版本还会引入一个对等的Java版本的consumer。新的API旨在取代老的使用Scala编写的客户端API,但为了兼容性的考虑两版API还要同时存在一段时间。另外,新版的API可以打成独立的jar包,而Scala版本的不行。 ... 阅读全文
posted @ 2015-05-07 17:44 huxihx 阅读(2015) 评论(0) 推荐(0) 编辑
摘要:既然包名是api,说明里面肯定都是一些常用的Kafka API了。一、ApiUtils.scala顾名思义,就是一些常见的api辅助类,定义的方法包括:1. readShortString: 从一个ByteBuffer中读取字符串长度和字符串。这个ByteBuffer的格式应该是:2个字节的字符串长... 阅读全文
posted @ 2015-05-06 11:47 huxihx 阅读(999) 评论(0) 推荐(0) 编辑