06 2015 档案

摘要:本文分析的Kafka代码为kafka-0.8.2.1。另外,由于Kafka目前提供了两套Producer代码,一套是Scala版的旧版本;一套是Java版的新版本。虽然Kafka社区极力推荐大家使用Java版本的producer,但目前很多已有的程序还是调用了Scala版的API。今天我们就分析一下... 阅读全文
posted @ 2015-06-17 14:33 huxihx 阅读(8191) 评论(0) 推荐(2) 编辑
摘要:本文着重介绍几个常用的topic命令行命令,包括listTopic,createTopic,deleteTopic和describeTopic等。由于alterTopic并不是很常用,本文中就不涉及了。另外本文的代码分析是基于kafka_2.10-0.8.2.1的(虽然截图是Kafka 0.8.1的... 阅读全文
posted @ 2015-06-12 11:46 huxihx 阅读(19379) 评论(2) 推荐(0) 编辑
摘要:admin包定义了命令行的一些实现一、AdminOperationException.scala一个异常类,表示执行admin命令时候抛出的异常二、AdminUtils.scalaadmin一些常用工具方法:1. assignReplicasToBrokers:负责分配副本到不同的broker上。主... 阅读全文
posted @ 2015-06-11 15:31 huxihx 阅读(2227) 评论(0) 推荐(0) 编辑
摘要:1. 概述 Paxos算法被用来实现一个容错的分布式系统,一直以来以晦涩难懂著称。这可能是因为该算法最开始使用希腊文表述的。事实上,它是所有分布式算法中最简单易懂的。Paxos算法的本质其实就是一个共识算法(我不太同意国内把consensusalgorithm翻译成一致性算法,因为一致性的标准英文应... 阅读全文
posted @ 2015-06-11 13:49 huxihx 阅读(2185) 评论(1) 推荐(0) 编辑
摘要:该包下只有一个文件:ClientUtils.scala。它是一个object,里面封装了各种client(包括producer,consumer或admin)可能会用到的方法:1. fetchTopicMetadata(producer版本): producer client会调用该方法来发送一个T... 阅读全文
posted @ 2015-06-09 14:24 huxihx 阅读(1187) 评论(0) 推荐(0) 编辑
摘要:顾名思义,就是kafka的consumer api包。一、ConsumerConfig.scalaKafka consumer的配置类,除了一些默认值常量及验证参数的方法之外,就是consumer的配置参数了,比如group.id, consumer.id等,详细列表见官网。二、ConsumerIt... 阅读全文
posted @ 2015-06-09 13:59 huxihx 阅读(3555) 评论(2) 推荐(0) 编辑
摘要:十四、AbstractFetcherManager.scala该scala定义了两个case类和一个抽象类。两个case类很简单:1. BrokerAndFectherId:封装了一个broker和一个fetcher的数据结构2. BrokerAndInitialOffset:封装了broker和初... 阅读全文
posted @ 2015-06-02 09:59 huxihx 阅读(1791) 评论(0) 推荐(0) 编辑