![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
kafka
文章平均质量分 76
亮亮-AC米兰
这个人什么都没留下
展开
-
kafka原理解析-《Learning Apache Kafka, 2nd Edition.pdf》
最近准备写kafka源码解析,先预热下,上传篇关于kafka的介绍,下载地址:http://download.csdn.net/detail/wl044090432/9449275原创 2016-03-01 14:05:33 · 11210 阅读 · 3 评论 -
kafka源码解析之七KafkaRequestHandlerPool
KafkaRequestHandlerPool的逻辑比较简单,就是开启num.io.threads个KafkaRequestHandler,每个KafkaRequestHandler从RequestChannel. requestQueue 接受request,然后把对应的response存进responseQueues(i)队列class KafkaRequestHandlerPool(原创 2016-03-26 16:24:37 · 2465 阅读 · 0 评论 -
kafka源码解析之十二KafkaController(中篇)
12.3 KafkaController PartitionStateMachine它实现了topic的分区状态切换功能,Partition存在的状态如下:状态名状态存在的时间有效的前置状态NonExistentPartition1.partition重来没有被创建2.partition创建之后被删除原创 2016-04-11 09:29:47 · 3839 阅读 · 0 评论 -
kafka源码解析之十二KafkaController(下篇)
12.6 KafkaController内部的listenerKafkaControler(leader)通过在zk的不同目录建立各种listener来达到对topic的管理和维护,其在zk的目录结构和对应的listener如下:12.6.1 brokerChangeListener/** * This is the zookeeper listener that tri原创 2016-04-11 09:56:19 · 5210 阅读 · 0 评论 -
kafka源码解析之十二KafkaController(上篇)
KafkaController比较复杂,准备花上中下三篇来介绍,其主要的内容如下:12.1 KafkaController成为leader的过程12.2 kafkaController的初始化(leader)12.3 KafkaController PartitionStateMachine12.4 KafkaController PartitionLeaderSelector原创 2016-04-11 09:17:03 · 3893 阅读 · 0 评论 -
kafka源码解析之十三KafkaHealthcheck
主要是在zk的/brokers/[0...N] 路径上建立该Broker的信息,并且该节点是ZK中的Ephemeral Node,当此Broker离线的时候,zk上对应的节点也就消失了,那么其它Broker可以及时发现该Broker的异常。class KafkaHealthcheck(private val brokerId: Int, privat原创 2016-04-11 13:41:23 · 1676 阅读 · 0 评论 -
kafka源码解析之十四TopicConfigManager
当Kakfka的topic创建之后,需要中途修改该topic的属性的时候,可以通过在/brokers/config_changes上传配置信息,触发TopicConfigManager内部的监听函数来更改topic的属性。class TopicConfigManager(private val zkClient: ZkClient, priva原创 2016-04-11 13:42:29 · 1405 阅读 · 0 评论 -
kafka源码解析之十五客户端如何创建topic
主要存在两种方式:即自动创建还是手动创建。当配置auto.create.topics.enable=true时,则如果kafka发现该topic不存在的话,会按默认配置自动创建topic。当配置auto.create.topics.enable=false时,客户端需要提前创建好topic,才可以正确地往topic发送数据,创建topic的命令如下:bin/kafka-topics.sh --原创 2016-04-11 14:30:20 · 6953 阅读 · 0 评论 -
kafka源码解析之十六生产者流程(客户端如何向topic发送数据)
客户端向topic发送数据分为两种方式:1.异步,2同步。其配置为producer.type,如果为sync,则是同步发送;如果为async,则是异步发送。客户端代码如下:import kafka.javaapi.producer.Producer;import kafka.producer.KeyedMessage;import kafka.producer.ProducerConf原创 2016-04-11 19:48:58 · 7058 阅读 · 0 评论 -
kafka源码解析Word版
免积分下载:http://download.csdn.net/detail/wl044090432/9487835目录内容:Kafka源码解析目录Kafka源码解析...1一. kafka诞生的背景... 21.1 kafka在LinkedIn内部的应用...31.2 它的主要设计目标:...31.3 为什么我们要使用消息系统:原创 2016-04-11 20:24:09 · 3107 阅读 · 3 评论 -
kafka源码解析之六SocketServer
class SocketServer(val brokerId: Int, val host: String, val port: Int, val numProcessorThreads: Int, val maxQueuedRequests:原创 2016-03-26 15:40:01 · 2165 阅读 · 2 评论 -
kafka源码解析之五Broker处理的request的来源
如下图所示:Broker共处理10种request,分别如下:①ProducerRequest:生成者发送消息至KAFKA集群/或者消费者提交偏移量至KAFKA的log的请求②TopicMetadataRequest: 生产者发送/消费者发送获取topic的元数据信息的请求原创 2016-03-24 15:29:38 · 2280 阅读 · 0 评论 -
kafka源码解析之九ReplicaManager
首先解释下2个名词:AR(assignreplicas):分配副本 ISR(in-sync replicas):在同步中的副本,即下图:Partition { topic : string //topic名称 partition_id原创 2016-04-01 11:42:59 · 4535 阅读 · 0 评论 -
kafka源码解析之十OffsetManager
OffsetManager主要提供对offset的保存和读取,kafka管理topic的偏移量有2种方式:1)zookeeper,即把偏移量提交至zk上;2)kafka,即把偏移量提交至kafka内部,主要由offsets.storage参数决定,默认为zookeeper。也就是说如果配置offsets.storage= kafka,则kafka会把这种offsetcommit请求转变为一种Pro原创 2016-04-01 17:46:20 · 4838 阅读 · 0 评论 -
kafka源码解析之一kafka诞生的背景
Apache Kafka是由Apache软件基金会开发的一个开源消息系统项目,由Scala写成。Kafka最初是由LinkedIn开发(LinkedIn (领英) 创建于2002 年,致力于向全球职场人士提供沟通平台,并协助他们事半功倍,发挥所长。作为全球最大的职业社交网站,LinkedIn 会员人数在世界范围内已超过3 亿,每个《财富》世界500强公司均有高管加入),并于2011年初开源。201原创 2016-03-22 20:25:49 · 4500 阅读 · 0 评论 -
kafka源码解析之二kafka内部的专业术语
kafka的组成● Broker一台kafka服务器就是一个broker。一个集群由多个broker组成。一个broker可以容纳多个topic。● Topic每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。(物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个broker上但用户只需指定消息的Topic即可生产或消费数据而不原创 2016-03-23 14:29:36 · 2836 阅读 · 0 评论 -
kafka源码解析之十一KafkaApis
KafkaApis真正负责内部request的业务逻辑,kafka_2.10-0.8.2.0目前支持11种request请求,具体的request类别在Broker处理的request的来源中已经提到,即下图:接下来主要叙述下各个不同request的来源,以及request的处理流程:class KafkaApis(val requestChannel: RequestChan原创 2016-04-05 21:36:24 · 5546 阅读 · 0 评论 -
kafka源码解析之十七消费者流程(客户端如何获取topic的数据)
Kafka消费数据的角色分为普通消费者和高级消费者,其介绍如下:16.1 普通消费者特点:1)一个消息读取多次 2)在一个处理过程中只消费某个broker上的partition的部分消息 3)必须在程序中跟踪offset值 4)必须找出指定TopicPartition中的lead broker 5)必须处理broker的变动客户端编程必须按照以下步原创 2016-04-11 19:53:08 · 13856 阅读 · 0 评论 -
kafka源码解析之目录索引
源码系列:kafka源码解析之一kafka诞生的背景kafka源码解析之二kafka内部的专业术语kafka源码解析之三Broker的启动kafka源码解析之四Broker的模块组成kafka源码解析之五Broker处理的request的来源kafka源码解析之六SocketServerkafka源码解析之七KafkaRequestH原创 2016-04-12 09:08:17 · 2093 阅读 · 1 评论 -
kafka源码解析之三Broker的启动
正常启动kafka的命令如下:查看kafka-server-start.sh脚本:查看Kafka.Kafka类:object Kafka extends Logging { def main(args: Array[String]): Unit = { if (args.length != 1) { println("USAGE: java [原创 2016-03-26 14:18:49 · 4206 阅读 · 0 评论 -
kafka源码解析之四Broker的模块组成
Broker主要由SocketServer(Socket服务层),KafkaRequestHandlerPool(请求转发层),Kafka api(业务逻辑层),Control(集群状态控制层),KafkaHealthcheck Broker (Broker健康检测层),TopicConfigManager(topic配置信息监控层)组成。见下图:● SocketServer内部开原创 2016-03-24 14:14:12 · 2650 阅读 · 0 评论 -
欢迎购买《Kafka源码解析与实战》
沉静了大半年终于把Kafka相关的知识整理了下,欢迎大家购买。购买方式:登陆京东,搜索关键字:Kafka源码解析与实战。或者点击此链接https://item.jd.com/12277714.html原创 2018-01-04 15:50:15 · 1626 阅读 · 0 评论