资源名称:Kafka并不难学!入门、进阶、商业实战
内容简介:
本书基于Kafka 0.10.2.0以上版本,采用“理论 实践”的形式编写。全书共68个实例。
全书共分为4篇:
第1篇,介绍了消息队列和Kafka、安装与配置Kafka环境;
第2篇,介绍了Kafka的基础操作、生产者和消费者、存储及管理数据;
第3篇,介绍了更高级的Kafka知识及应用,包括安全机制、连接器、流处理、监控与测试;
第4篇,是对前面知识的综合及实际应用,包括ELK套件整合实战、Spark实时计算引擎整合实战、Kafka Eagle监控系统设计与实现实战。
本书的每章都配有同步教学视频。视频和图书具有相同的结构,能帮助读者快速而全面地了解每章的内容。
本书还免费提供所有案例的源代码。这些代码不仅能方便读者学习,也能为以后的工作提供便利。
资源目录:
——第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
资源截图: