《Kafka并不难学 入门 进阶 商业实战》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:邓杰编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2018
  • ISBN:9787121352478
  • 页数:358 页
图书介绍:本书基于Kafka 0.10.2.0以上版本,采用“理论+实践”的形式编写。全书共66个实例。本书的每章都配有同步教学视频。视频和图书具有相同的结构,能帮助读者快速而全面地了解每章的内容。本书还免费提供所有案例的源代码。这些代码不仅方便读者学习,而且也能为以后的工作提供便利。全书共分为4篇:第1篇,包括了解消息队列和Kafka、安装与配置Kafka环境;第2篇,介绍了Kafka的基础操作,详细介绍了生产者和消费者,存储及管理数据;第3篇,介绍了更高级的Kafka知识及应用,包括安全机制、连接器、流处理、监控与测试;第4篇,是对前面知识的综合及实际应用,包括ELK套件整合实战、Spark实时计算引擎整合实战、Kafka Eagle监控系统设计与实现实战。本书结构清晰、案例丰富、通俗易懂、实用性强。特别适合Kafka系统的初学者和进阶读者作为自学教程。另外,本书也适合社会培训学校作为培训教材使用,还适合大中专院校的相关专业作为教学参考书。

第1篇 准备 2

第1章 了解消息队列和Kafka 2

1.1 本章教学视频说明 2

1.2 消息队列 2

1.2.1 什么是消息队列 3

1.2.2 消息队列主要有哪些作用 3

1.3 为什么需要Kafka 6

1.4 Kafka的基本概念 7

1.4.1 代理、生产者、消费者、消费者组 7

1.4.2 主题、分区、副本、记录 8

1.5 了解Kafka的工作机制——生产消息/消费消息 9

1.6 Kafka的使用范围 10

1.6.1 Kafka的设计初衷 10

1.6.2 Kafka的特性 11

1.6.3 Kafka适用于哪些场景 13

1.7 小结 14

第2章 安装及配置Kafka 15

2.1 本章教学视频说明 15

2.2 安装与配置基础环境 16

2.2.1 安装并配置Linux操作系统 16

2.2.2 实例1:安装与配置Java运行环境 18

2.2.3 实例2:配置SSH免密码登录 21

2.2.4 实例3:安装与配置Zookeeper 23

2.3 实例4:部署Kafka 27

2.3.1 单机模式部署 27

2.3.2 分布式模式部署 29

2.4 实例5:安装与配置Kafka监控工具 32

2.4.1 获取并编译Kafka Eagle源代码 32

2.4.2 安装与配置Kafka Eagle 33

2.5 实例6:编译Kafka源代码 37

2.5.1 安装与配置Scala运行环境 38

2.5.2 安装与配置Gradle 39

2.5.3 了解Kafka源代码的编译过程 40

2.6 实例7:将Kafka源代码导入编辑器 42

2.6.1 导入IntelliJ IDEA编辑器 42

2.6.2 导入Eclipse编辑器 44

2.7 了解元数据的存储分布 46

2.8 了解控制器的选举流程 48

2.8.1 了解控制器的启动顺序 48

2.8.2 了解主题分区Leader节点的选举过程 52

2.8.3 了解注册分区和副本状态机 59

2.8.4 了解分区自动均衡和分区重新分配 61

2.9 小结 66

第2篇 入门 68

第3章 Kafka的基本操作 68

3.1 本章教学视频说明 68

3.2 操作Zookeeper集群 68

3.2.1 Zookeeper的作用及背景 69

3.2.2 实例8:单机模式启动Zookeeper系统 70

3.2.3 实例9:单机模式关闭Zookeeper系统 72

3.2.4 实例10:分布式模式启动Zookeeper集群 74

3.2.5 实例11:分布式模式关闭Zookeeper集群 77

3.3 操作Kafka集群 77

3.3.1 实例12:单机模式启动Kafka系统 78

3.3.2 实例13:单机模式关闭Kafka系统 79

3.3.3 实例14:分布式模式启动Kafka集群 81

3.3.4 实例15:分布式模式关闭Kafka集群 84

3.4 管理主题 85

3.4.1 什么是主题 86

3.4.2 实例16:创建主题 87

3.4.3 实例17:查看主题 88

3.4.4 实例18:修改主题 92

3.4.5 实例19:删除主题 94

3.5 管理分区与副本 95

3.5.1 分区和副本的背景及作用 95

3.5.2 实例20:修改分区 96

3.5.3 实例21:修改副本数 97

3.6 小结 99

第4章 将消息数据写入Kafka系统——生产 100

4.1 本章教学视频说明 100

4.2 了解Kafka生产者 101

4.3 使用脚本操作生产者 101

4.3.1 实例22:通过监控工具查看消息 102

4.3.2 实例23:启动消费者程序,并查看消息 103

4.4 发送消息到Kafka主题 104

4.4.1 了解异步模式 104

4.4.2 实例24:生产者用异步模式发送消息 105

4.4.3 了解同步模式 105

4.4.4 实例25:生产者用同步模式发送消息 106

4.4.5 多线程发送消息 107

4.4.6 实例26:生产者用单线程发送消息 107

4.4.7 实例27:生产者用多线程发送消息 110

4.5 配置生产者的属性 112

4.6 保存对象的各个属性——序列化 115

4.6.1 实例28:序列化一个对象 115

4.6.2 实例29:在生产者应用程序中实现序列化 117

4.7 自定义主题分区 122

4.7.1 实例30:编写自定义主题分区的算法 122

4.7.2 实例31:演示自定义分区类的使用 123

4.8 小结 125

第5章 从Kafka系统中读取消息数据——消费 126

5.1 本章教学视频说明 126

5.2 了解Kafka消费者 126

5.2.1 为什么需要消费者组 126

5.2.1 消费者和消费者组的区别 127

5.2.2 消费者和分区的对应关系 127

5.3 使用Kafka系统的脚本操作消费者 130

5.3.1 认识消费者新接口 130

5.3.2 实例32:用新接口启动消费者程序,并查看消费者信息 131

5.3.3 实例33:用旧接口启动消费者程序,并查看消费者元数据的存储结构 134

5.4 消费Kafka集群中的主题消息 136

5.4.1 主题如何自动获取分区和手动分配分区 137

5.4.2 实例34:主题自动/手动获取分区 137

5.4.3 实例35:反序列化主题消息 140

5.4.4 如何提交消息的偏移量 145

5.4.5 实例36:使用多线程消费多个分区的主题 146

5.5 配置消费者的属性 150

5.6 小结 151

第6章 存储及管理数据 152

6.1 本章教学视频说明 152

6.2 分区存储数据 152

6.2.1 熟悉分区存储 153

6.2.2 了解消息的格式 154

6.3 清理过期数据的两种方法 155

6.4 网络模型和通信流程 156

6.4.1 基本数据类型 156

6.4.2 通信模型 157

6.4.3 通信过程 157

6.6 小结 159

第3篇 进阶 162

第7章 Kafka安全机制 162

7.1 本章教学视频说明 162

7.2 了解Kafka的安全机制 162

7.2.1 身份验证 163

7.2.2 权限控制 163

7.3 使用SSL协议进行加密和身份验证 164

7.3.1 了解SSL协议 164

7.3.2 实例37:创建SSL密钥库,并查看密钥库文件 165

7.3.3 实例38:创建私有证书 167

7.3.4 实例39:导出证书,使用CA对证书进行签名 170

7.3.5 实例40:在服务端配置SSL协议,并创建主题 173

7.3.6 实例41:在客户端配置SSL协议,并读/写数据 174

7.4 使用SASL协议进行认证 176

7.4.1 给客户端配置“Java认证和授权服务”(JAAS) 176

7.4.2 给服务端配置SASL 178

7.4.3 实例42:开启SASL/Kerberos认证协议 178

7.4.4 实例43:开启SASL/PLAIN认证协议 181

7.4.5 实例44:开启SASL/SCRAM认证协议 184

7.5 权限控制 187

7.5.1 权限控制的基础命令 187

7.5.2 配置ACL(访问控制列表) 188

7.5.3 实例45:启动集群 189

7.5.4 实例46:查看授权、添加授权、删除授权 190

7.6 小结 195

第8章 用Kafka连接器建立数据管道 196

8.1 本章教学视频说明 196

8.2 认识Kafka连接器 196

8.2.1 了解连接器的使用场景 197

8.2.2 特性及优势 198

8.2.3 连接器的几个核心概念 198

8.3 操作Kafka连接器 199

8.3.1 配置Kafka连接器的属性 199

8.3.2 认识应用接口——REST API 202

8.3.3 实例47:单机模式下,将数据导入Kafka主题中 203

8.3.4 实例48:单机模式下,将Kafka主题中的数据导出 205

8.3.5 实例49:分布式模式下,将数据导入Kafka主题 206

8.4 实例50:开发一个简易的Kafka连接器插件 210

8.4.1 编写Source连接器 211

8.4.2 编写Sink连接器 217

8.4.3 打包与部署 220

8.5 小结 225

第9章 Kafka流处理 226

9.1 本章教学视频说明 226

9.2 初识Kafka流处理 227

9.2.1 什么是流处理 227

9.2.2 什么是流式计算 227

9.2.3 为何要使用流处理 228

9.3 了解流处理的架构 229

9.3.1 流分区与任务 230

9.3.2 线程模型 232

9.3.3 本地状态存储 234

9.3.4 容错性(Failover) 235

9.4 操作KStream和KTable 235

9.4.1 流处理的核心概念 236

9.4.2 窗口操作 237

9.4.3 连接操作 241

9.4.4 转换操作 246

9.4.5 聚合操作 247

9.5 实例51:利用流处理开发一个单词统计程序 248

9.5.1 创建Kafka流主题 248

9.5.2 统计流主题中单词出现的频率 249

9.5.3 预览操作结果 250

9.6 实例52:利用Kafka流开发一个SQL引擎 251

9.6.1 构建生产流数据源 251

9.6.2 构建Kafka流处理 253

9.6.3 构建数据结构和执行SQL逻辑 254

9.6.4 观察操作结果 255

9.7 小结 256

第10章 监控与测试 257

10.1 本章教学视频说明 257

10.2 Kafka的监控工具——Kafka Eagle系统 258

10.2.1 实例53:管理主题 258

10.2.2 实例54:查看消费者组信息 259

10.2.3 实例55:查看Kafka与Zookeeper集群的状态和性能 263

10.3 测试生产者性能 264

10.3.1 了解测试环境 264

10.3.2 认识测试工具 265

10.3.3 实例56:利用工具测试生产者性能 266

10.4 测试消费者性能 275

10.4.1 了解测试环境 275

10.4.2 认识测试工具 276

10.4.3 实例57:利用脚本测试消费者的性能 276

10.4 小结 280

第4篇 商业实战 282

第11章 Kafka与ELK套件的整合 282

11.1 本章教学视频说明 282

11.2 安装与配置ELK 283

11.2.1 安装与配置LogStash 283

11.2.2 实例58:LogStash的标准输入与输出 285

11.2.3 安装与配置ElasticSearch 287

11.2.4 实例59:使用ElasticSearch集群的HTTP接口创建索引 292

11.2.5 实例60:使用ElasticSearch集群的HTTP接口查看索引 293

11.2.6 实例61:使用ElasticSearch集群的HTTP接口添加数据 294

11.2.7 安装与配置Kibana 296

11.2.8 实例62:启动并验证Kibana系统 298

11.3 实例63:实现一个游戏日志实时分析系统 299

11.3.1 了解系统要实现的功能 300

11.3.2 了解平台体系架构 300

11.3.3 采集数据 302

11.3.4 分流数据 304

11.3.5 实现数据可视化 306

11.4 小结 308

第12章 Kafka与Spark实时计算引擎的整合 309

12.1 本章教学视频说明 309

12.2 介绍Spark背景 310

12.2.1 Spark SQL—— Spark处理结构化数据的模块 310

12.2.2 Spark Streaming—— Spark核心应用接口的一种扩展 311

12.2.3 MLlib——Spark的一个机器学习类库 311

12.2.4 GraphX—— Spark的一个图计算框架 311

12.3 准备Spark环境 311

12.3.1 下载Spark基础安装包 311

12.3.2 安装与配置Spark集群 312

12.4 操作Spark 315

12.4.1 实例64:使用Spark Shell统计单词出现的频率 315

12.4.2 实例65:使用Spark SQL对单词权重进行降序输出 317

12.4.3 实例66:使用Spark Submit统计单词出现的频率 319

12.5 实例67:对游戏明细数据做实时统计 322

12.5.1 了解项目背景和价值 323

12.5.2 设计项目实现架构 323

12.5.3 编码步骤一 实现数据采集 325

12.5.4 编码步骤二 实现流计算 327

12.5.5 编码步骤三 打包应用程序 330

12.5.6 编码步骤四 创建表结构 332

12.5.7 编码步骤五 执行应用程序 332

12.5.8 编码步骤六 预览结果 333

12.6 小结 333

第13章 实例68:从零开始设计一个Kafka监控系统——Kafka Eagle 334

13.1 本章教学视频说明 334

13.2 了解Kafka Eagle监控系统 335

13.2.1 设计的背景 335

13.2.2 应用场景 336

13.3 从结构上了解Kafka Eagle 337

13.3.1 了解Kafka Eagle的整体架构和代码结构 337

13.3.2 设计Kafka Eagle的7大功能模块 339

13.4 实现Kafka Eagle的功能模块 347

13.4.1 编码步骤一 实现数据面板 347

13.4.2 编码步骤二 实现主题管理 348

13.4.3 编码步骤三 实现消费者实例详情 350

13.4.4 编码步骤四 实现集群监控 350

13.4.5 编码步骤五 实现性能监控 351

13.4.6 编码步骤六 实现告警功能 351

13.4.7 编码步骤七 实现系统功能 352

13.5 安装及使用Kafka Eagle监控系统 353

13.5.1 准备环境 353

13.5.2 快速部署 354

13.5.3 了解Kafka Eagle的基础命令 358

13.6 小结 358