
kafka源码分析
文章平均质量分 63
iteye_10680
这个作者很懒,什么都没留下…
展开
-
Kafka之Consumer获取消费数据全过程图解
这篇文章是作为:[跟我学Kafka源码之Consumer分析](http://flychao88.iteye.com/blog/2268481) 的补充材料,看过我们之前源码分析的同学可能知道。本文将从客户端程序如何调用Consumer获取到最终Kafka消息的全过程以图解的方式作一个源码级别的梳理。 ...原创 2016-03-05 21:25:37 · 1903 阅读 · 0 评论 -
跟我学Kafka之Controller控制器详解(一)
我们的kafka源码分享已经进行过很多期了,主要的内容也都分享的差不多了,那么那么在今后的分享中,主要集中在kafka性能优化和使用Kafka集群中的其中一个Broker会被选举为Controller,主要负责Partition管理和副本状态管理,也会执行类似于重分配Partition之类的管理任务。如果当前的Controller失败,会从其他正常的Broker中重新选举Contro...原创 2016-02-21 20:55:02 · 206 阅读 · 0 评论 -
跟我学Kafka之zookeeper的存储结构
一、zookeeper存储结构总图图片当我们kafka启动运行以后,就会在zookeeper上初始化kafka相关数据,主要包括六大类:consumersadminconfigcontrollerbrokerscontroller_epoch1、brokers节点结构说明1.1 topic信息结构/brokers/topics/[top...原创 2016-02-18 16:04:15 · 213 阅读 · 0 评论 -
跟我学Kafka之NIO通信机制
很久没有做技术方面的分享了,今天闲来有空写一篇关于Kafka通信方面的文章与大家共同学习。一、Kafka通信机制的整体结构74EACA88-8B9D-45F8-B7BF-202D658205A9.png这个图采用的就是我们之前提到的SEDA多线程模型,链接如下:http://www.jianshu.com/p/e184fdc0ade41、对于broker来说,客户端连接数量有限...原创 2016-02-01 18:54:19 · 193 阅读 · 0 评论 -
为什么说Kafka使用磁盘比内存快
学习过[跟我学Kafka源码之LogManager分析]的同学一定会问为什么Kafka大量使用了磁盘作为传统意义的缓存。其实Kafka最核心的思想是使用磁盘,而不是使用内存,可能所有人都会认为,内存的速度一定比磁盘快,我也不例外。在看了Kafka的设计思想,查阅了相应资料再加上自己的测试后,发现磁盘的顺序读写速度和内存持平。而且Linux对于磁盘的读写优化也比较多,包括read-ahe...原创 2016-01-25 23:00:24 · 293 阅读 · 0 评论 -
SEDA架构模型
一、传统并发模型的缺点基于线程的并发特点:每任务一线程直线式的编程使用资源昂高,context切换代价高,竞争锁昂贵太多线程可能导致吞吐量下降,响应时间暴涨。基于事件的并发模型特点:单线程处理事件每个并发流实现为一个有限状态机应用直接控制并发负载增加的时候,吞吐量饱和响应时间线性增长二、SEDA架构特点:(1)服务通过queue分解成stage: 每个stage代表...原创 2016-01-25 18:45:30 · 311 阅读 · 0 评论 -
跟我学Kafka源码之LogManager分析
一、kafka文件系统存储机制 1、partition存储结构说明假如kafka集群中只有一个broker,数据文件目录为message-folder,例如创建一个topic名称为:testKJ1, partitions=4存储路径和目录规则为:xxx/message-folder |--testKJ1-0...原创 2016-01-09 23:29:28 · 277 阅读 · 0 评论 -
跟我学Kafka源码之Broker Server
本章,我们将进入到Kafka的核心类中进行代码走读,深入分析他的存储交互和消息分发原理。首先给大家展示一张服务端交互图,因为比较复杂我就没有再画,转发别人的一张图以供参考: 大家看完这个图以后相信有了一个整体认识,那么下面我们就重点从整体到细节的逐步分解。 一、KafkaServerStartable在Kafka的main入口中startup KafkaServerSt...原创 2016-01-06 14:49:16 · 386 阅读 · 0 评论 -
跟我学Kafka源码之Consumer分析
在上一章,我们跟踪了Producer源码的整体流程和一些细节,本章我们将重点跟踪Consumer的源码细节。Consumer的配置文件如下:Kafka Consumer配置:group.id: 指定consumer所属的consumer groupconsumer.id: ...原创 2016-01-04 15:06:53 · 543 阅读 · 1 评论 -
Kafka整体结构以及模块分析
一、Kafka源代码的工程结构如下图所示: 二、各模板简要说明admin:管理员模块,操作和管理topic,paritions相关,包含create,delete topic,扩展patitionsApi:该模块主要负责交互数据的组装,客户端与服务端交互数据编解码client:该模块比较简单就一个类,Producer读取kafka broker元数据信...原创 2015-12-29 18:27:46 · 372 阅读 · 0 评论 -
跟我学Kafka源码Producer分析
本章主要讲解分析Kafka的Producer的业务逻辑,分发逻辑和负载逻辑都在Producer中维护。 一、Kafka的总体结构图(图片转发) 二、Producer源码分析 class Producer[K,V](val config: ProducerConfig, private val eventHandler: ...原创 2015-12-25 15:10:29 · 255 阅读 · 0 评论 -
Kafka常用命令行总结
以下是kafka常用命令行总结:1.查看topic的详细信息./kafka-topics.sh -zookeeper 127.0.0.1:2181 -describe -topic testKJ12、为topic增加副本./kafka-reassign-partitions.sh -zookeeper 127.0.0.1:2181 -reassignment-json-...原创 2015-12-10 14:47:08 · 252 阅读 · 0 评论 -
跟我学Kafka源码使用入门(三)
这一节咱们主要是讨论单机版的Kafka的简单使用,关于集群方面的东西其实也非常简单,具体可以参考Kafka官网进行配置既可。1、准备Zookeeper环境我们使用的是zookeeper-3.5.0版本。使用./zkServer.sh start命令启动Zookeeper使用ps -ax | grep zookeeper命令,出现下图所示:2、准备Kafka环境我们使...原创 2015-12-09 16:24:46 · 98 阅读 · 0 评论 -
跟我学Kafka源码配置文件简介(二)
1、Broker配置 2.Consumer主要配置 3.Producer主要配置 以上是关于kafka配置文件一些基础说明,在其中我们知道如果要kafka正常运行,必须还要配置zookeeper。...原创 2015-12-09 11:45:30 · 99 阅读 · 0 评论 -
跟学我Kakfa源码搭建环境(一)
Kafka is a distributed,partitioned,replicated commit logservice。它提供了类似于JMS的特性,但是在设计实现上完全不同,此外它并不是JMS规范的实现。kafka对消息保存时根据Topic进行归类,发送消息者成为Producer,消息接受者成为Consumer,此外kafka集群有多个kafka实例组成,每个实例(server)成为b...原创 2015-12-08 13:59:17 · 124 阅读 · 0 评论