Kafka技术内幕 图文详解Kafka源码设计与实现

Kafka技术内幕 图文详解Kafka源码设计与实现
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2017-11
版次: 1
ISBN: 9787115469380
定价: 119.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 703页
正文语种: 简体中文
丛书: 图灵原创
107人买过
  • Kafka自LinkedIn开源以来就以高性能、高吞吐量、分布式的特性著称,本书以0.10版本的源码为基础,深入分析了Kafka的设计与实现,包括生产者和消费者的消息处理流程,新旧消费者不同的设计方式,存储层的实现,协调者和控制器如何确保Kafka集群的分布式和容错特性,两种同步集群工具MirrorMaker和uReplicator,流处理的两种API以及Kafka的一些高级特性等。

    《Kafka技术内幕 图文详解Kafka源码设计与实现》适合Kafka开发人员阅读。 郑奇煌,目前就职于杭州某互联网风控公司,主要专注于大数据和流计算。对源码研究有一定的心得体会,乐于分享,个人博客:zqhxuyuan.github.io。 第1章 Kafka入门 1

    1.1 Kafka流式数据平台 1

    1.2 Kafka的基本概念 3

    1.2.1 分区模型 3

    1.2.2 消费模型 4

    1.2.3 分布式模型 5

    1.3 Kafka的设计与实现 6

    1.3.1 文件系统的持久化与数据传输效率 6

    1.3.2 生产者与消费者 8

    1.3.3 副本机制和容错处理 10

    1.4 快速开始 11

    1.4.1 单机模式 12

    1.4.2 分布式模式 14

    1.4.3 消费组示例 16

    1.5 环境准备 18

    第2章 生产者 22

    2.1 新生产者客户端 22

    2.1.1 同步和异步发送消息 23

    2.1.2 客户端消息发送线程 29

    2.1.3 客户端网络连接对象 31

    2.1.4 选择器处理网络请求 35

    2.2 旧生产者客户端 43

    2.2.1 事件处理器处理客户端发送的消息 44

    2.2.2 对消息集按照节点和分区进行整理 46

    2.2.3 生产者使用阻塞通道发送请求 48

    2.3 服务端网络连接 49

    2.3.1 服务端使用接收器接受客户端的连接 50

    2.3.2 处理器使用选择器的轮询处理网络请求 53

    2.3.3 请求通道的请求队列和响应队列 56

    2.3.4 Kafka请求处理线程 58

    2.3.5 服务端的请求处理入口 58

    2.4 小结 60

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

    3.1 消费者启动和初始化 67

    3.1.1 创建并初始化消费者连接器 69

    3.1.2 消费者客户端的线程模型 70

    3.1.3 重新初始化消费者 72

    3.2 消费者再平衡操作 73

    3.2.1 分区的所有权 74

    3.2.2 为消费者分配分区 75

    3.2.3 创建分区信息对象 78

    3.2.4 关闭和更新拉取线程管理器 80

    3.2.5 分区信息对象的偏移量 80

    3.3 消费者拉取数据 82

    3.3.1 拉取线程管理器 82

    3.3.2 抽象拉取线程 87

    3.3.3 消费者拉取线程 90

    3.4 消费者消费消息 94

    3.4.1 Kafka消息流 94

    3.4.2 消费者迭代消费消息 95

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

    3.5.1 提交偏移量到ZK 98

    3.5.2 提交偏移量到内部主题 99

    3.5.3 连接偏移量管理器 101

    3.5.4 服务端处理提交偏移量的请求 103

    3.5.5 缓存分区的偏移量 106

    3.6 消费者低级API示例 108

    3.6.1 消息消费主流程 109

    3.6.2 找出分区的主副本 112

    3.6.3 获取分区的读取偏移量 113

    3.6.4 发送拉取请求并消费消息 116

    3.7 小结 117

    3.7.1 消费者线程模型 117

    3.7.2 再平衡和分区分配 119

    第4章 新消费者 121

    4.1 新消费者客户端 125

    4.1.1 消费者的订阅状态 125

    4.1.2 消费者轮询的准备工作 134

    4.1.3 消费者轮询的流程 138

    4.1.4 消费者拉取消息 146

    4.1.5 消费者获取记录 149

    4.1.6 消费消息 160

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

    4.2.1 异步请求 162

    4.2.2 异步请求高级模式 169

    4.2.3 网络客户端轮询 184

    4.3 心跳任务 188

    4.3.1 发送心跳请求 188

    4.3.2 心跳状态 189

    4.3.3 运行心跳任务 191

    4.3.4 处理心跳结果的示例 192

    4.3.5 心跳和协调者的关系 193

    4.4 消费者提交偏移量 195

    4.4.1 自动提交任务 195

    4.4.2 将拉取偏移量作为提交偏移量 197

    4.4.3 同步提交偏移量 201

    4.4.4 消费者的消息处理语义 202

    4.5 小结 206

    第5章 协调者 210

    5.1 消费者加入消费组 211

    5.1.1 元数据与分区分配器 212

    5.1.2 消费者的加入组和同步组 213

    5.1.3 主消费者执行分配任务 220

    5.1.4 加入组的准备、完成和监听器 224

    5.2 协调者处理请求 229

    5.2.1 服务端定义发送响应结果的回调方法 229

    5.2.2 消费者和消费组元数据 232

    5.2.3 协调者处理请求前的条件检查 236

    5.2.4 协调者调用回调方法发送响应给客户端 237

    5.3 延迟的加入组操作 242

    5.3.1 “准备再平衡” 242

    5.3.2 延迟操作和延迟缓存 244

    5.3.3 尝试完成延迟的加入操作 246

    5.3.4 消费组稳定后,原有消费者重新加入消费组 250

    5.3.5 消费组未稳定,原有消费者重新加入消费组 251

    5.4 消费组状态机 254

    5.4.1 再平衡操作与监听器 254

    5.4.2 消费组的状态转换 262

    5.4.3 协调者处理“加入组请求” 264

    5.4.4 协调者处理“同步组请求” 274

    5.4.5 协调者处理“离开组请求” 276

    5.4.6 再平衡超时与会话超时 278

    5.4.7 延迟的心跳 282

    5.5 小结 290

    第6章 存储层 293

    6.1 日志的读写 293

    6.1.1 分区、副本、日志、日志

    分段 294

    6.1.2 写入日志 297

    6.1.3 日志分段 305

    6.1.4 读取日志 315

    6.1.5 日志管理 329

    6.1.6 日志压缩 336

    6.2 服务端处理读写请求 348

    6.2.1 副本管理器 351

    6.2.2 分区与副本 362

    6.3 延迟操作 373

    6.3.1 延迟操作接口 374

    6.3.2 延迟操作与延迟缓存 383

    6.3.3 延迟缓存 391

    6.4 小结 400

    第7章 控制器 402

    7.1 Kafka控制器 402

    7.1.1 控制器选举 403

    7.1.2 控制器上下文 406

    7.1.3 ZK监听器 408

    7.1.4 分区状态机和副本状态机 410

    7.1.5 删除主题 430

    7.1.6 重新分配分区 436

    7.1.7 控制器的网络通道管理器 445

    7.2 服务端处理LeaderAndIsr请求 448

    7.2.1 创建分区 449

    7.2.2 创建主副本、备份副本 451

    7.2.3 消费组元数据迁移 463

    7.3 元数据缓存 468

    7.3.1 服务端的元数据缓存 472

    7.3.2 客户端更新元数据 473

    7.4 Kafka服务关闭 483

    7.5 小结 487

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

    8.1 Kafka集群同步工具:MirrorMaker 490

    8.1.1 单机模拟数据同步 491

    8.1.2 数据同步的流程 493

    8.2 Uber集群同步工具:uReplicator 498

    8.2.1 Apache Helix介绍 498

    8.2.2 Helix控制器 501

    8.2.3 Helix工作节点 504

    8.3 Kafka连接器 505

    8.3.1 连接器的使用示例 507

    8.3.2 开发一个简单的连接器 510

    8.3.3 连接器的架构模型 515

    8.3.4 Herder的实现 520

    8.3.5 Worker的实现 524

    8.3.6 配置存储与状态存储 530

    8.3.7 连接器与任务的实现 550

    8.4 小结 565

    第9章 Kafka流处理 569

    9.1 低级Processor API 569

    9.1.1 流处理应用程序示例 569

    9.1.2 流处理的拓扑 575

    9.1.3 流处理的线程模型 580

    9.1.4 状态存储 613

    9.2 高级流式DSL 636

    9.2.1 DSL应用程序示例 636

    9.2.2 KStream和KTable 638

    9.2.3 连接操作 665

    9.2.4 窗口操作 672

    9.3 小结 684

    第10章 高级特性介绍 686

    10.1 客户端配额 686

    10.2 消息与时间戳 692

    10.3 事务处理 699

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

    《Kafka技术内幕 图文详解Kafka源码设计与实现》适合Kafka开发人员阅读。
  • 作者简介:
    郑奇煌,目前就职于杭州某互联网风控公司,主要专注于大数据和流计算。对源码研究有一定的心得体会,乐于分享,个人博客:zqhxuyuan.github.io。
  • 目录:
    第1章 Kafka入门 1

    1.1 Kafka流式数据平台 1

    1.2 Kafka的基本概念 3

    1.2.1 分区模型 3

    1.2.2 消费模型 4

    1.2.3 分布式模型 5

    1.3 Kafka的设计与实现 6

    1.3.1 文件系统的持久化与数据传输效率 6

    1.3.2 生产者与消费者 8

    1.3.3 副本机制和容错处理 10

    1.4 快速开始 11

    1.4.1 单机模式 12

    1.4.2 分布式模式 14

    1.4.3 消费组示例 16

    1.5 环境准备 18

    第2章 生产者 22

    2.1 新生产者客户端 22

    2.1.1 同步和异步发送消息 23

    2.1.2 客户端消息发送线程 29

    2.1.3 客户端网络连接对象 31

    2.1.4 选择器处理网络请求 35

    2.2 旧生产者客户端 43

    2.2.1 事件处理器处理客户端发送的消息 44

    2.2.2 对消息集按照节点和分区进行整理 46

    2.2.3 生产者使用阻塞通道发送请求 48

    2.3 服务端网络连接 49

    2.3.1 服务端使用接收器接受客户端的连接 50

    2.3.2 处理器使用选择器的轮询处理网络请求 53

    2.3.3 请求通道的请求队列和响应队列 56

    2.3.4 Kafka请求处理线程 58

    2.3.5 服务端的请求处理入口 58

    2.4 小结 60

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

    3.1 消费者启动和初始化 67

    3.1.1 创建并初始化消费者连接器 69

    3.1.2 消费者客户端的线程模型 70

    3.1.3 重新初始化消费者 72

    3.2 消费者再平衡操作 73

    3.2.1 分区的所有权 74

    3.2.2 为消费者分配分区 75

    3.2.3 创建分区信息对象 78

    3.2.4 关闭和更新拉取线程管理器 80

    3.2.5 分区信息对象的偏移量 80

    3.3 消费者拉取数据 82

    3.3.1 拉取线程管理器 82

    3.3.2 抽象拉取线程 87

    3.3.3 消费者拉取线程 90

    3.4 消费者消费消息 94

    3.4.1 Kafka消息流 94

    3.4.2 消费者迭代消费消息 95

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

    3.5.1 提交偏移量到ZK 98

    3.5.2 提交偏移量到内部主题 99

    3.5.3 连接偏移量管理器 101

    3.5.4 服务端处理提交偏移量的请求 103

    3.5.5 缓存分区的偏移量 106

    3.6 消费者低级API示例 108

    3.6.1 消息消费主流程 109

    3.6.2 找出分区的主副本 112

    3.6.3 获取分区的读取偏移量 113

    3.6.4 发送拉取请求并消费消息 116

    3.7 小结 117

    3.7.1 消费者线程模型 117

    3.7.2 再平衡和分区分配 119

    第4章 新消费者 121

    4.1 新消费者客户端 125

    4.1.1 消费者的订阅状态 125

    4.1.2 消费者轮询的准备工作 134

    4.1.3 消费者轮询的流程 138

    4.1.4 消费者拉取消息 146

    4.1.5 消费者获取记录 149

    4.1.6 消费消息 160

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

    4.2.1 异步请求 162

    4.2.2 异步请求高级模式 169

    4.2.3 网络客户端轮询 184

    4.3 心跳任务 188

    4.3.1 发送心跳请求 188

    4.3.2 心跳状态 189

    4.3.3 运行心跳任务 191

    4.3.4 处理心跳结果的示例 192

    4.3.5 心跳和协调者的关系 193

    4.4 消费者提交偏移量 195

    4.4.1 自动提交任务 195

    4.4.2 将拉取偏移量作为提交偏移量 197

    4.4.3 同步提交偏移量 201

    4.4.4 消费者的消息处理语义 202

    4.5 小结 206

    第5章 协调者 210

    5.1 消费者加入消费组 211

    5.1.1 元数据与分区分配器 212

    5.1.2 消费者的加入组和同步组 213

    5.1.3 主消费者执行分配任务 220

    5.1.4 加入组的准备、完成和监听器 224

    5.2 协调者处理请求 229

    5.2.1 服务端定义发送响应结果的回调方法 229

    5.2.2 消费者和消费组元数据 232

    5.2.3 协调者处理请求前的条件检查 236

    5.2.4 协调者调用回调方法发送响应给客户端 237

    5.3 延迟的加入组操作 242

    5.3.1 “准备再平衡” 242

    5.3.2 延迟操作和延迟缓存 244

    5.3.3 尝试完成延迟的加入操作 246

    5.3.4 消费组稳定后,原有消费者重新加入消费组 250

    5.3.5 消费组未稳定,原有消费者重新加入消费组 251

    5.4 消费组状态机 254

    5.4.1 再平衡操作与监听器 254

    5.4.2 消费组的状态转换 262

    5.4.3 协调者处理“加入组请求” 264

    5.4.4 协调者处理“同步组请求” 274

    5.4.5 协调者处理“离开组请求” 276

    5.4.6 再平衡超时与会话超时 278

    5.4.7 延迟的心跳 282

    5.5 小结 290

    第6章 存储层 293

    6.1 日志的读写 293

    6.1.1 分区、副本、日志、日志

    分段 294

    6.1.2 写入日志 297

    6.1.3 日志分段 305

    6.1.4 读取日志 315

    6.1.5 日志管理 329

    6.1.6 日志压缩 336

    6.2 服务端处理读写请求 348

    6.2.1 副本管理器 351

    6.2.2 分区与副本 362

    6.3 延迟操作 373

    6.3.1 延迟操作接口 374

    6.3.2 延迟操作与延迟缓存 383

    6.3.3 延迟缓存 391

    6.4 小结 400

    第7章 控制器 402

    7.1 Kafka控制器 402

    7.1.1 控制器选举 403

    7.1.2 控制器上下文 406

    7.1.3 ZK监听器 408

    7.1.4 分区状态机和副本状态机 410

    7.1.5 删除主题 430

    7.1.6 重新分配分区 436

    7.1.7 控制器的网络通道管理器 445

    7.2 服务端处理LeaderAndIsr请求 448

    7.2.1 创建分区 449

    7.2.2 创建主副本、备份副本 451

    7.2.3 消费组元数据迁移 463

    7.3 元数据缓存 468

    7.3.1 服务端的元数据缓存 472

    7.3.2 客户端更新元数据 473

    7.4 Kafka服务关闭 483

    7.5 小结 487

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

    8.1 Kafka集群同步工具:MirrorMaker 490

    8.1.1 单机模拟数据同步 491

    8.1.2 数据同步的流程 493

    8.2 Uber集群同步工具:uReplicator 498

    8.2.1 Apache Helix介绍 498

    8.2.2 Helix控制器 501

    8.2.3 Helix工作节点 504

    8.3 Kafka连接器 505

    8.3.1 连接器的使用示例 507

    8.3.2 开发一个简单的连接器 510

    8.3.3 连接器的架构模型 515

    8.3.4 Herder的实现 520

    8.3.5 Worker的实现 524

    8.3.6 配置存储与状态存储 530

    8.3.7 连接器与任务的实现 550

    8.4 小结 565

    第9章 Kafka流处理 569

    9.1 低级Processor API 569

    9.1.1 流处理应用程序示例 569

    9.1.2 流处理的拓扑 575

    9.1.3 流处理的线程模型 580

    9.1.4 状态存储 613

    9.2 高级流式DSL 636

    9.2.1 DSL应用程序示例 636

    9.2.2 KStream和KTable 638

    9.2.3 连接操作 665

    9.2.4 窗口操作 672

    9.3 小结 684

    第10章 高级特性介绍 686

    10.1 客户端配额 686

    10.2 消息与时间戳 692

    10.3 事务处理 699

    10.4 小结 703
查看详情
系列丛书 / 更多
Kafka技术内幕 图文详解Kafka源码设计与实现
第一行代码:Android
郭霖 著
Kafka技术内幕 图文详解Kafka源码设计与实现
啊哈!算法
啊哈磊 著
Kafka技术内幕 图文详解Kafka源码设计与实现
推荐系统实践
项亮 著
Kafka技术内幕 图文详解Kafka源码设计与实现
深入浅出Node.js
朴灵 著
Kafka技术内幕 图文详解Kafka源码设计与实现
SEO教程:搜索引擎优化入门与进阶(第3版)
吴泽欣 著
Kafka技术内幕 图文详解Kafka源码设计与实现
Go语言编程
许式伟 著
Kafka技术内幕 图文详解Kafka源码设计与实现
Unity 3D游戏开发
宣雨松 著
Kafka技术内幕 图文详解Kafka源码设计与实现
JavaScript设计模式与开发实践
曾探 著
Kafka技术内幕 图文详解Kafka源码设计与实现
腾云:—云计算和大数据时代网络技术揭秘
徐立冰 著
Kafka技术内幕 图文详解Kafka源码设计与实现
iOS开发指南 从零基础到App Store上架(第3版)
关东升 著
Kafka技术内幕 图文详解Kafka源码设计与实现
深入React技术栈
陈屹 著
Kafka技术内幕 图文详解Kafka源码设计与实现
Docker 容器与容器云(第2版)
浙江大学SEL实验室 著
相关图书 / 更多
Kafka技术内幕 图文详解Kafka源码设计与实现
KaplanSCHWESER2022FRM?Notes备考笔记二级·上(1-2套装共2本)
美国开普兰公司 编
Kafka技术内幕 图文详解Kafka源码设计与实现
Kafka进阶
赵渝强
Kafka技术内幕 图文详解Kafka源码设计与实现
KaliLinux高级渗透测试(原书第3版)
[加拿大]罗伯特·贝格斯(Robert Beggs) 著;[印度]维杰·库马尔·维卢(Vijay、Kumar、Velu、祝清意、蒋溢、罗文俊、李琪 译
Kafka技术内幕 图文详解Kafka源码设计与实现
Kali Linux高级渗透测试(原书第4版)
维杰·库马尔·维卢 著
Kafka技术内幕 图文详解Kafka源码设计与实现
Kafka权威指南(第2版)
[美]格温·沙皮拉(Gwen Shapira);[美]托德·帕利诺(Todd
Kafka技术内幕 图文详解Kafka源码设计与实现
Kafka实战
迪伦·斯科特(Dylan Scott)维克托·盖莫夫(Viktor Gamov)
Kafka技术内幕 图文详解Kafka源码设计与实现
Kafka基础架构与设计
智酷道捷内容与产品中心
Kafka技术内幕 图文详解Kafka源码设计与实现
KaplanSCHWESER2022FRM?Notes备考笔记二级·下(3-5)套装共3册
美国开普兰公司 著
Kafka技术内幕 图文详解Kafka源码设计与实现
Kali Linux渗透测试全流程详解
王佳亮
Kafka技术内幕 图文详解Kafka源码设计与实现
Kali Linux2 网络渗透测试实践指南 第2版
李华峰
Kafka技术内幕 图文详解Kafka源码设计与实现
Kali安全渗透测试实践教程
张宝军、潘瑞芳、俞承杭、俞斌 著
Kafka技术内幕 图文详解Kafka源码设计与实现
Kaplan Writing Power (Third Edition)(Kaplan写作指导)
Nancy White 著