Kafka权威指南pdf下载

摘要每个应用程序都会产生数据,包括日志消息、度量指标、用户活动记录、响应消息等。如何移动数据,几乎变得与数据本身一样重要。如果你是架构师、开发者或者产品工程师,同时也是Apache Kafka新手,那么这本实践指南将会帮助你成为流式平台上处理实时数据的专家。 本书由出...

摘要

每个应用程序都会产生数据,包括日志消息、度量指标、用户活动记录、响应消息等。如何移动数据,几乎变得与数据本身一样重要。如果你是架构师、开发者或者产品工程师,同时也是Apache Kafka新手,那么这本实践指南将会帮助你成为流式平台上处理实时数据的专家。
本书由出身于LinkedIn的Kafka核心作者和一线技术人员共同执笔,详细介绍了如何部署Kafka集群、开发可靠的基于事件驱动的微服务,以及基于Kafka平台构建可伸缩的流式应用程序。通过详尽示例,你将会了解到Kafka的设计原则、可靠性保证、关键API,以及复制协议、控制器和存储层等架构细节。
● 了解发布和订阅消息模型以及该模型如何被应用在大数据生态系统中
● 学习使用Kafka生产者和消费者来生成消息和读取消息
● 了解Kafka保证可靠性数据传递的模式和场景需求
● 使用Kafka构建数据管道和应用程序的最佳实践
● 在生产环境中管理Kafka,包括监控、调优和维护
● 了解Kafka的关键度量指标
● 探索Kafka如何成为流式处理利器

Kafka权威指南 内容简介

本书是关于Kafka的全面教程,主要内容包括:Kafka相对于其他消息队列系统的优点,主要是它如何完美匹配大数据平台开发;详解Kafka内部设计;用Kafka构建应用的最佳实践;理解在生产中部署Kafka的最佳方式;如何确保Kafka集群的安全。

Kafka权威指南 目录

序  xiii

前言  xv

第1章 初识Kafka  1

1.1 发布与订阅消息系统  1

1.1.1 如何开始  2

1.1.2 独立的队列系统  3

1.2 Kafka登场  4

1.2.1 消息和批次  4

1.2.2 模式  4

1.2.3 主题和分区  5

1.2.4 生产者和消费者  5

1.2.5 broker和集群  6

1.2.6 多集群  7

1.3 为什么选择Kafka  8

1.3.1 多个生产者  8

1.3.2 多个消费者  8

1.3.3 基于磁盘的数据存储  9

1.3.4 伸缩性  9

1.3.5 高性能  9

1.4 数据生态系统  9

1.5 起源故事  11

1.5.1 LinkedIn的问题  11

1.5.2 Kafka的诞生  12

1.5.3 走向开源  12

1.5.4 命名  13

1.6 开始Kafka之旅  13

第2章 安装Kafka  14

2.1 要事先行  14

2.1.1 选择操作系统  14

2.1.2 安装Java  14

2.1.3 安装Zookeeper  15

2.2 安装Kafka Broker  17

2.3 broker配置  18

2.3.1 常规配置  18

2.3.2 主题的默认配置  19

2.4 硬件的选择  23

2.4.1 磁盘吞吐量  23

2.4.2 磁盘容量  23

2.4.3 内存  23

2.4.4 网络  24

2.4.5 CPU  24

2.5 云端的Kafka  24

2.6 Kafka集群  24

2.6.1 需要多少个broker  25

2.6.2 broker配置  25

2.6.3 操作系统调优  26

2.7 生产环境的注意事项  28

2.7.1 垃圾回收器选项  28

2.7.2 数据中心布局  29

2.7.3 共享Zookeeper  29

2.8 总结  30

第3章 Kafka生产者——向Kafka写入数据  31

3.1 生产者概览  32

3.2 创建Kafka生产者  33

3.3 发送消息到Kafka  34

3.3.1 同步发送消息  35

3.3.2 异步发送消息  35

3.4 生产者的配置  36

3.5 序列化器  39

3.5.1 自定义序列化器  39

3.5.2 使用Avro序列化  41

3.5.3 在Kafka里使用Avro  42

3.6 分区  45

3.7 旧版的生产者API  46

3.8 总结  47

第4章 Kafka消费者——从Kafka读取数据  48

4.1 KafkaConsumer概念  48

4.1.1 消费者和消费者群组  48

4.1.2 消费者群组和分区再均衡  51

4.2 创建Kafka 消费者  52

4.3 订阅主题  53

4.4 轮询  53

4.5 消费者的配置  55

4.6 提交和偏移量  57

4.6.1 自动提交  58

4.6.2 提交当前偏移量  59

4.6.3 异步提交  59

4.6.4 同步和异步组合提交  61

4.6.5 提交特定的偏移量  61

4.7 再均衡监听器  62

4.8 从特定偏移量处开始处理记录  64

4.9 如何退出  66

4.10 反序列化器  67

4.11 独立消费者——为什么以及怎样使用没有群组的消费者  71

4.12 旧版的消费者API  71

4.13 总结  72

第5章 深入Kafka  73

5.1 集群成员关系  73

5.2 控制器  74

5.3 复制  74

5.4 处理请求  76

5.4.1 生产请求  78

5.4.2 获取请求  78

5.4.3 其他请求  80

5.5 物理存储  81

5.5.1 分区分配  81

5.5.2 文件管理  82

5.5.3 文件格式  83

5.5.4 索引  84

5.5.5 清理  84

5.5.6 清理的工作原理  84

5.5.7 被删除的事件  86

5.5.8 何时会清理主题  86

5.6 总结  86

第6章 可靠的数据传递  87

6.1 可靠性保证  87

6.2 复制  88

6.3 broker配置  89

6.3.1 复制系数  89

6.3.2 不完全的首领选举  90

6.3.3 最少同步副本  91

6.4 在可靠的系统里使用生产者  92

6.4.1 发送确认  92

6.4.2 配置生产者的重试参数  93

6.4.3 额外的错误处理  94

6.5 在可靠的系统里使用消费者  94

6.5.1 消费者的可靠性配置  95

6.5.2 显式提交偏移量  95

6.6 验证系统可靠性  97

6.6.1 配置验证  98

6.6.2 应用程序验证  98

6.6.3 在生产环境监控可靠性  99

6.7 总结  100

第7章 构建数据管道  101

7.1 构建数据管道时需要考虑的问题  102

7.1.1 及时性  102

7.1.2 可靠性  102

7.1.3 高吞吐量和动态吞吐量  103

7.1.4 数据格式  103

7.1.5 转换  104

7.1.6 安全性  104

7.1.7 故障处理能力  104

7.1.8 耦合性和灵活性  105

7.2 如何在Connect API和客户端API之间作出选择  105

7.3 Kafka Connect  106

7.3.1 运行Connect  106

7.3.2 连接器示例——文件数据源和文件数据池  107

7.3.3 连接器示例——从MySQL到ElasticSearch  109

7.3.4 深入理解Connect  114

7.4 Connect之外的选择  116

7.4.1 用于其他数据存储的摄入框架  116

7.4.2 基于图形界面的ETL 工具  117

7.4.3 流式处理框架  117

7.5 总结  117

第8章 跨集群数据镜像  118

8.1 跨集群镜像的使用场景  118

8.2 多集群架构  119

8.2.1 跨数据中心通信的一些现实情况  119

8.2.2 Hub和Spoke架构  120

8.2.3 双活架构  121

8.2.4 主备架构  123

8.2.5 延展集群  127

8.3 Kafka的MirrorMaker  128

8.3.1 如何配置  129

8.3.2 在生产环境部署MirrorMaker  130

8.3.3 MirrorMaker调优  132

8.4 其他跨集群镜像方案  134

8.4.1 优步的uReplicator  134

8.4.2 Confluent的Replicator  135

8.5 总结  135

第9章 管理Kafka  136

9.1 主题操作  136

9.1.1 创建主题  137

9.1.2 增加分区  138

9.1.3 删除主题  138

9.1.4 列出集群里的所有主题  139

9.1.5 列出主题详细信息  139

9.2 消费者群组  140

9.2.1 列出并描述群组  140

9.2.2 删除群组  142

9.2.3 偏移量管理  142

9.3 动态配置变更  143

9.3.1 覆盖主题的默认配置  143

9.3.2 覆盖客户端的默认配置  145

9.3.3 列出被覆盖的配置  145

9.3.4 移除被覆盖的配置  146

9.4 分区管理  146

9.4.1 首选的首领选举  146

9.4.2 修改分区副本  147

9.4.3 修改复制系数  150

9.4.4 转储日志片段  151

9.4.5 副本验证  152

9.5 消费和生产  153

9.5.1 控制台消费者  153

9.5.2 控制台生产者  155

9.6 客户端ACL  157

9.7 不安全的操作  157

9.7.1 移动集群控制器  157

9.7.2 取消分区重分配  157

9.7.3 移除待删除的主题  158

9.7.4 手动删除主题  158

9.8 总结  159

第10章 监控Kafka  160

10.1 度量指标基础  160

10.1.1 度量指标在哪里  160

10.1.2 内部或外部度量  161

10.1.3 应用程序健康检测  161

10.1.4 度量指标的覆盖面  161

10.2 broker的度量指标  162

10.2.1 非同步分区  162

10.2.2 broker度量指标  166

10.2.3 主题和分区的度量指标  173

10.2.4 Java虚拟机监控  174

10.2.5 操作系统监控  175

10.2.6 日志  176

10.3 客户端监控  177

10.3.1 生产者度量指标  177

10.3.2 消费者度量指标  179

10.3.3 配额  181

10.4 延时监控  182

10.5 端到端监控  183

10.6 总结  183

第11章 流式处理  184

11.1 什么是流式处理  185

11.2 流式处理的一些概念  186

11.2.1 时间  187

11.2.2 状态  188

11.2.3 流和表的二元性  188

11.2.4 时间窗口  189

11.3 流式处理的设计模式  190

11.3.1 单个事件处理  191

11.3.2 使用本地状态  191

11.3.3 多阶段处理和重分区  193

11.3.4 使用外部查找——流和表的连接  193

11.3.5 流与流的连接  195

11.3.6 乱序的事件  195

11.3.7 重新处理  196

11.4 Streams示例  197

11.4.1 字数统计  197

11.4.2 股票市场统计  199

11.4.3 填充点击事件流  201

11.5 Kafka Streams的架构概览  202

11.5.1 构建拓扑  202

11.5.2 对拓扑进行伸缩  203

11.5.3 从故障中存活下来  205

11.6 流式处理使用场景  205

11.7 如何选择流式处理框架  206

11.8 总结  208

附录A 在其他操作系统上安装Kafka  209

作者介绍  214

封面介绍  214

Kafka权威指南 精彩文摘

1.2.1 消息和批次

Kafka 的数据单元被称为消息。如果你在使用 Kafka 之前已经有数据库使用经验,那么可以把消息看成是数据库里的一个“数据行”或一条“记录”。消息由字节数组组成,所以对于 Kafka 来说,消息里的数据没有特别的格式或含义。消息可以有一个可选的元数据,也就是键。键也是一个字节数组,与消息一样,对于 Kafka 来说也没有特殊的含义。当消息以一种可控的方式写入不同的分区时,会用到键。最简单的例子就是为键生成一个一致性散列值,然后使用散列值对主题分区数进行取模,为消息选取分区。这样可以保证具有相同键的消息总是被写到相同的分区上。第 3 章将详细介绍键的用法。

为了提高效率,消息被分批次写入 Kafka。批次就是一组消息,这些消息属于同一个主题和分区。如果每一个消息都单独穿行于网络,会导致大量的网络开销,把消息分成批次传输可以减少网络开销。不过,这要在时间延迟和吞吐量之间作出权衡:批次越大,单位时间内处理的消息就越多,单个消息的传输时间就越长。批次数据会被压缩,这样可以提升数据的传输和存储能力,但要做更多的计算处理。

本文来自转身以后投稿,不代表电子书资源网立场,如若转载,请联系原作者获取。

打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
() 0
上一篇 02-14
下一篇 02-14

相关推荐

评论列表

联系我们

在线咨询: QQ交谈

邮件:admin@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信