mf!
图灵原创
·
图文详解
Kafka
的内部原理、设计与实现
·
全面分析以
Kafka
为中心的分布式流平台
•
Kafka
新特性详解,包括连接器和流处理
Kafka
技术内辜
图文详解
Kafka
源码设计与实现
郑奇煌
。
著
中国工信出版集团
多人民邮电出版社
也
郑奇煌
目前就职于杭州某互联网风控
公司,主要专注于大数据和流
计算
。
对掠码研究有一定的心
得体会,乐于分享,个人博客:
zqhxuyuan.gith
ub
.io
。
、
自由图灵原创
Kafka
技术内辜
图文详解
Kafka
源码设计与实现
也
郑奇煌
。
著
人民邮电出版社
、
北京
图书在版编目(
C I
P
)数据
Kafka
技术内幕:图文详解
Kafka
源码设计与 实现/
郑奇煌著.一北京:人民邮电出版社,
2017.
11
(图灵原创)
ISBN
978-7-115-46938-0
I
.①
K
…
II.
①郑…
III.
①分布式操作系统一研究
凹.
①
TP316.4
中国版本图书馆
CIP
数据核字(
2017
)第
235945
号
内容提要
、
Kafka
自
Linkedln
开源以来就以
高
性能、高吞吐量、分布式的特性著称
。本书以
O
10
版本的源码
为基础,深入分析了
Kafka
的设计与实现,包括生产者和消费者的消息处理流程,新旧消费者不同的设
计方式,存储层的实现,协调者和控制器如何确保
Kafka
集群的分布式和容错特性,两种同步集群工具
MirrorMaker
和
uReplicator
,流处理的两种
API
以及
Kafka
的
一些高级特性等。
本书适合
Kafka
开发人员阅读。
’著
郑奇煌
责任编辑王军花
责任印制彭志环
,人民邮电出版社出版发行
北京市丰台区成寿寺路门号
邮编
100164
电子邮件
31
S@ptpress.com
.c
n
网址
http:
//www.ptpress
.c
om
.
cn
大厂聚鑫印刷有限责任公司印刷
’
开本:
8
00
×
1000
1/
16
印张:
44.5
字数
:
l
191
千字
印数:
I
- 4
000
册
2017
年
11
月第
l
版
2017
年
11
月河北第
l
次印刷
定价:
l
19.00
元
读者服务热线:(
010)51095186
转
600
印装质量热线:(
010)81055316
反盗版热线:(
010)81055315
,
广告经营许可证:京东工商广登字
20170147
号
目
lj
昌
Apache Kafka
(简称
Kafka
)最早是由
Linkedln
开源出来的分布式消息系统,现在是
Apache
旗下的
一个子项目,并且已经成为开册、领域应用最广泛
的消息系统之
一
。
Kafka
社区也非常活跃,从
0
.
9
版本
开始,
Kafka
的标语已经从“一个高吞吐量、分布式的消息系统”改为“一个分布式的流平台”
。
如何阅读本书
本书主要
0(0
.
10
版本的
Kafka
源码为基础,并通过图文详解的方式分析
Kafka
内部组件的实现细节
。
对于
Ka
仅
a
流处理的一些新特性,本书也会分析。
11
版本的相关源码
。
本书各章的主要内容如下
。
口第
1
:4(
首先介绍了
Kafka
作为流式数据平台的
3
个组成,包括消息系统
、存
储系统和流处理系
统,接着从分区模型、消费模型和分布式模型这三个模型介绍了
Kafka
的几个基本概念,然后
介绍了
Kafka
几个比较重要的设计思路,最后讨论了如何在
一台
机器上模拟单机模式与分布式
模式,以及如何搭建开发环境
。
口第
2
章从一个生产者
的示例开始,引出了新版本生产者的两种消息发送方式
。
生产者客户端
通过记录收集器和发送钱程,对消息集进行分组和缓存,并为目标节点创建生产请求,发送
到不同的代理节点
。
接着介绍了与网络相关的
Kafka
通道、选择器、轮询等
NIO
操作
。
另外,
还介绍了
Scala
版本的旧生产者,它使用阻塞通道的方式发送请求
。
最后,介绍了服务端采用
Reactor
模式处理客户端的请求
。
口第
3
章首先介绍了消费者
相关的基础概念,然后从
-个消费者
的示例开始,引出了基于
ZooKeeper
(后面简称
ZK
)的高级消费者
API
。
要理解高级
API
,-主要是要理解消费线程的模
型以及变蓝的传递方式
。
接着介绍了消费者提交分区偏移量的两种方式
。
最后,我们举了一
个低级
API
的示例
。
开发者需要向己实现一些比较复杂的逻辑处理,才能保证消费程序的健
壮性和稳定性
。
口第
4
章介绍了新版本的消费者
。
不同于旧版本的消费者,新版本去除了
ZK
的依赖,统一了旧
版本的高级
API
和低级
API
,并提供了两种消费方式:订阅和分配
。
新版本引人订阅状态来管
理消费者的订阅信息,并使用拉取器拉取消息
。
新版本的消费者没有使用拉取线程,而是采
用轮询的方式拉取消息,它的性能比旧版本的消费者更好
。
另外,还介绍了消费者采用回调
器、处理器、监昕器、适配器、组合模式和链式调用等实现不同类型的异步请求
。
最后,我
们介绍了新消费者的心跳任务
、消费者提交偏移量
以及
3
种消息处理语义的使用方式
。