【福利】文末评论免费送《Kafka技术内幕》新书

关注 iteblog_hadoop 公众号并在本文末评论区留言(认真写评论,增加上榜的机会)。留言点赞数排名前5名的粉丝,各免费赠送一本《Kafka技术内幕》,活动截止至11月28日18:00。

Kafka,不只是个消息系统,更是功能完善的分布式流式处理平台。

2017年11月1日,Kafka 1.0.0 版本发布,带动了不少程序员期待深入了解这个人气持续飙升的项目。恰好,图灵新书《Kafka技术内幕》上架。早在本书出版之前,作者郑奇煌的博客就受到了不少读者的喜爱,本书讲述内容的广度和深度是市面上其他 Kafka 图书少见的。唯一的遗憾是,受限于一本书的出版流程,它以 0.10 版本讲解,不过,也算市面上已有图书中版本比较新的。

本书有幸在出版之前得到阿里巴巴高级技术专家冯嘉(Von Gosling),华为云主任工程师时金魁,过往记忆技术博客博主吴阳平等各位老师的阅读和推荐,非常感谢各位对这本书的喜爱。


作者:郑奇煌
定价:119.00元

  • 图文详解Kafka的内部原理、设计与实现

  • 全面分析以Kafka为中心的分布式流平台

  • Kafka新特性详解,包括连接器、流处理

  • 阿里巴巴高级技术专家、Aliware MQ总架构师、Apache RocketMQ联合创始人、Linux OpenMessaging规范发起人冯嘉Von Gosling),华为云主任工程师时金魁,过往记忆技术博客博主吴阳平倾力推荐

Kafka 自 LinkedIn 开源以来就以高性能、高吞吐量、分布式的特性著称,本书以 0.10 版本的源码为基础,深入分析了 Kafka 的设计与实现,包括生产者和消费者的消息处理流程,新旧消费者不同的设计方式,存储层的实现,协调者和控制器如何确保Kafka集群的分布式和容错特性,两种同步集群工具 MirrorMaker 和 uReplicator ,流处理的两种 API 以及 Kafka 的一些高级特性等。

内容抢先了解

本书主要以 0.10 版本的 Kafka 源码为基础,并通过图文详解的方式分析Kafka 内部组件的实现细节。对于Kafka流处理的一些新特性,本书也会分析 0.11 版本的相关源码。本书各章的主要内容如下。

第1章 首先介绍了 Kafka 作为流式数据平台的3个组成,包括消息系统、存储系统和流处理系统,接着从分区模型、消费模型和分布式模型这三个模型介绍了Kafka的几个基本概念,然后介绍了Kafka几个比较重要的设计思路,最后讨论了如何在一台机器上模拟单机模式与分布式模式,以及如何搭建开发环境。

第2章 从一个生产者的示例开始,引出了新版本生产者的两种消息发送方式。生产者客户端通过记录收集器和发送线程,对消息集进行分组和缓存,并为目标节点创建生产请求,发送到不同的代理节点。接着介绍了与网络相关的Kafka通道、选择器、轮询等NIO操作。另外,还介绍了Scala版本的旧生产者,它使用阻塞通道的方式发送请求。最后,介绍了服务端采用Reactor模式处理客户端的请求。

第3章 首先介绍了消费者相关的基础概念,然后从一个消费者的示例开始,引出了基于ZooKeeper(后面简称ZK)的高级消费者API。要理解高级API,主要是要理解消费线程的模型以及变量的传递方式。接着介绍了消费者提交分区偏移量的两种方式。最后,我们举了一个低级API的示例。开发者需要自己实现一些比较复杂的逻辑处理,才能保证消费程序的健壮性和稳定性。

第4章 介绍了新版本的消费者。不同于旧版本的消费者,新版本去除了ZK的依赖,统一了旧版本的高级API和低级API,并提供了两种消费方式:订阅和分配。新版本引入订阅状态来管理消费者的订阅信息,并使用拉取器拉取消息。新版本的消费者没有使用拉取线程,而是采用轮询的方式拉取消息,它的性能比旧版本的消费者更好。另外,还介绍了消费者采用回调器、处理器、监听器、适配器、组合模式和链式调用等实现不同类型的异步请求。最后,我们介绍了新消费者的心跳任务、消费者提交偏移量以及3种消息处理语义的使用方式。

第5章 介绍了新版本消费者相关的协调者实现,主要包括“加入组”与“同步组”。每个消费者都有一个客户端的协调者,服务端也有一个消费组级别的协调者负责处理所有消费者客户端的请求。当消费组触发再平衡操作时,服务端的协调者会记录消费组元数据的变化,并通过状态机保证消费组状态的正常转换。本章会通过很多不同的示例场景来帮助读者理解消费组相关的实现。

第6章 介绍了Kafka的存储层实现,包括读写、管理、压缩等一些常用的日志操作。服务端通过副本管理器处理客户端的生产请求和拉取请求。接着介绍了副本机制相关的分区、副本、最高水位、复制点等一些概念。最后,介绍了延迟操作接口与延迟缓存。服务端如果不能立即返回响应结果给客户端,会先将延迟操作缓存起来,直到请求处理完成或超时。

第7章 介绍了作为服务端核心的Kafka控制器,它主要负责管理分区状态机和副本状态机,以及多种类型的监听器,比如代理节点上线和下线、删除主题、重新分配分区等。控制器的一个重要职责是选举分区的主副本。不同代理节点根据控制器下发的请求,决定成为分区的主副本还是备份副本。另外,我们还分析了本地副本与远程副本的区别,以及元数据缓存的作用。

第8章 首先介绍了两种集群的同步工具:Kafka内置的MirrorMaker和Uber开源的uReplicator。接着,介绍了新版本Kafka提供的连接器框架,以及如何开发一个自定义的连接器。最后,介绍了连接器的架构模型的具体实现,主要包括数据模型、Connector模型和Worker模型。

第9章 介绍了Kafka流处理的两种API:低级Processor API和高级DSL。这一章重点介绍了流处理的线程模型,主要包括流实例、流线程和流任务。我们还介绍了流处理的本地状态存储,它主要用来作为备份任务的数据恢复。高级DSL包括两个组件——KStream与KTable,它们都定义了一些常用的流处理算子操作,比如无状态的操作(过滤和映射等)、有状态的操作(连接和窗口等)。

第10章 介绍了Kafka的一些高级特性,比如客户端的配额、新的消息格式和事务特性。本书相关的示例代码在笔者的GitHub主页https://github.com/zqhxuyuan/kafka-book上。



第1章 Kafka入门  1

1.1 Kafka流式数据平台  1

1.2 Kafka的基本概念  3

1.3 Kafka的设计与实现  6

1.4 快速开始  11

1.5 环境准备  18

第2章 生产者  22

2.1 新生产者客户端  22

2.2 旧生产者客户端  43

2.3 服务端网络连接  49

2.4 小结  60

第3章 消费者:高级API和低级API  61

3.1 消费者启动和初始化  67

3.2 消费者再平衡操作  73

3.3 消费者拉取数据  82

3.4 消费者消费消息  94

3.5 消费者提交分区偏移量  97

3.6 消费者低级API示例  108

3.7 小结  117

第4章 新消费者  121

4.1 新消费者客户端  125

4.2 消费者的网络客户端轮询  161

4.3 心跳任务  188

4.4 消费者提交偏移量  195

4.5 小结  206

第5章 协调者  210

5.1 消费者加入消费组  211

5.2 协调者处理请求  229

5.3 延迟的加入组操作  242

5.4 消费组状态机  254

5.5 小结  290

第6章 存储层  293

6.1 日志的读写  293

6.2 服务端处理读写请求  348

6.3 延迟操作  373

6.4 小结  400

第7章 控制器  402

7.1 Kafka控制器  402

7.2 服务端处理LeaderAndIsr请求  448

7.3 元数据缓存  468

7.4 Kafka服务关闭  483

7.5 小结  487

第8章 基于Kafka构建数据流管道  490

8.1 Kafka集群同步工具:MirrorMaker   490

8.2 Uber集群同步工具:uReplicator  98

8.3 Kafka连接器  05

8.4 小结  65

第9章 Kafka流处理  69

9.1 低级Processor API  69

9.2 高级流式DSL  36

9.3 小结  84

第10章 高级特性介绍  86

10.1 客户端配额  86

10.2 消息与时间戳  92

10.3 事务处理  99

10.4 小结  03



京东 7.9 折购买


赠书福利

【1】关注本公众号(Hadoop技术博文,ID:iteblog_hadoop),并在评论区留言获点赞数最高前5名将赠送《Kafka技术内幕——图文详解Kafka源码设计与实现》1本,共送出5本;

【2】活动时间:即日起至11月28日18:00点;

【3】活动结束后,收到中奖通知的用户请在公众号私信:微信号 + 姓名 + 地址+ 电话 + 邮编;

【4】本活动解释权归Hadoop技术博文所有。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值