猜你喜欢
Kafka并不难学!入门、进阶、商业实战

Kafka并不难学!入门、进阶、商业实战

书籍作者:邓杰 ISBN:9787121352478
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:5130
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

《Kafka并不难学!入门、进阶、商业实战》基于Kafka 0.10.2.0以上版本,采用“理论+实践”的形式编写。全书共68个实例。

《Kafka并不难学!入门、进阶、商业实战》共分为4篇:第1篇,介绍了消息队列和Kafka、安装与配置Kafka环境;第2篇,介绍了Kafka的基础操作、生产者和消费者、存储及管理数据;第3篇,介绍了更高级的Kafka知识及应用,包括安全机制、连接器、流处理、监控与测试;第4篇,是对前面知识的综合及实际应用,包括ELK套件整合实战、Spark实时计算引擎整合实战、Kafka Eagle监控系统设计与实现实战。

《Kafka并不难学!入门、进阶、商业实战》的每章都配有同步教学视频(共计155分钟)。视频和图书具有相同的结构,能帮助读者快速而全面地了解每章的内容。本书还免费提供所有案例的源代码。这些代码不仅能方便读者学习,也能为以后的工作提供便利。

《Kafka并不难学!入门、进阶、商业实战》结构清晰、案例丰富、通俗易懂、实用性强。特别适合Kafka系统的初学者和进阶读者作为自学教程。另外,本书也适合社会培训学校作为培训教材,还适合大中专院校的相关专业作为教学参考书。


作者简介

邓杰

资深大数据全栈开发者,极客学院讲师,开源爱好者,博客园博主。

开发了Kafka系统监控管理工具——Kafka Eagle,将其发布在Github上,深受业界开发者赞誉。

作为极客学院特邀讲师期间,制作了多个技术视频,讲授Hadoop技术、Kafka技术等课程,广受学员好评。

编辑推荐
适读人群 :本书适合应用想从事Kafka大数据处理的专业技术人员阅读,包括但不限于大数据相关应用的开发者、运维者和爱好者。 也适合高等院校、培训结构相关专业的师生使用。

通过68个实例进行讲解

155分教学视频,与图书同步

免费提供实例素材、源文件

开发一个完整的监控系统,代码提供

短段+短句,便于流畅阅读

实例的商业性、应用性较强

代码均有详细注释,便于理解


前言

关注公众号“哥不是小萝莉”,回复“KAFKA”,可以获取教学视频、实例素材、实例源文件。

本书使用通俗易懂的语言进行讲解,从基础操作到集群管理,再到Kafka底层设计等内容均有涉及。本书具有以下特点。

1.免费提供155分钟教学视频

作者按照图书的内容和结构,录制了同步对应的教学视频。既有上课式讲解,又有具体的代码操作。

2.可加入本书QQ学习群提问、交流

本书QQ学习群:825943084。加入本群可与千人成为同学,共享资源。

3.通过68个实例进行讲解

本书提供了68个实例,将理论讲解最终都落实到代码实现上来。而且,这些实例会伴随着图书内容的推进,不断地趋近于工程化的项目风格,具有很高的应用价值。

4.免费提供实例素材

书中实例用到的素材都已经提供。读者可以采用这些素材完全再现书中的实例效果。

5.免费提供实例的源文件

在网上已经提供了书中实例的源文件。读者可以一边阅读本书,一边参照源文件动手练习。这样不仅能提高学习的效率,还能对书中的知识有更加直观的认识,从而逐渐培养自己的编码能力。

6.覆盖的知识面广

本书几乎囊括了Kafka 0.10.2.0版本中的全部功能。读者在系统学习之后,本书还有查阅的价值。读者可以把本书当成一本Kafka工具书长期保留在身边。无论何时何地,只要遇到生僻操作,都可以及时找到说明。

7.采用短段、短句,便于流畅阅读

本书采用丰富的层次,并采用短小的段落和语句,所以,读来有顺水行舟的轻快感。

8.实例的商业性、应用性强

本书提供的实例多数来源于真正的商业项目,具有高度的参考价值。有些代码甚至可以直接移植到实际的项目中,进行重复使用。使得“从学到用”这个过程变得更加直接。

目录

第1篇 准备

第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篇 入门

第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篇 进阶

第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.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篇 商业实战

第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


产品特色