温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
Kafka
不难
入门
进阶
商业
实战
CMYCMMYCYCMYKKafka并不学文前.pdf 1 2018/11/2 10:03:23CMYCMMYCYCMYKKafka并不学文前.pdf 2 2018/11/2 10:03:23CMYCMMYCYCMYKKafka并不学文前.pdf 3 2018/11/2 10:03:24CMYCMMYCYCMYKKafka并不学文前.pdf 4 2018/11/2 10:03:24前 言 V 图 3 本书实例源文件 6覆盖的知识面广 本书几乎囊括了 Kafka 0.10.2.0 版本中的全部功能。读者在系统学习之后,本书还有查阅的价值。读者可以把本书当成一本 Kafka 工具书长期保留在身边。无论何时何地,只要遇到生僻操作,都可以及时找到说明。7采用短段、短句,便于流畅阅读 本书采用丰富的层次,并采用短小的段落和语句,所以,读来有顺水行舟的轻快感。8实例的商业性、应用性强 本书提供的实例多数来源于真正的商业项目,具有高度的参考价值。有些代码甚至可以直接移植到实际的项目中,进行重复使用。使得“从学到用”这个过程变得更加直接。致谢 感谢我的女朋友邹苗苗对我生活上的细心照顾与琐事上的宽容,使得我能安心写作!感谢我的父母对我的养育之恩!感谢各位读者选择了本书!希望本书能对您的学习有所助益。虽然我们对书中所述内容都尽量核实,并多次进行文字校对,但因时间紧张,加之水平所限,书中难免有疏漏和错误,敬请广者批评指正。联系编辑请发 E-mail 到 。邓杰 2018 年 8 月 案例的源文件读者可以快速再现结果案例的源文件读者可以快速再现结果 VIKafka 并不难学!入门、进阶、商业实战 目目 录录 第 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 目 录 VII 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 VIIIKafka 并不难学!入门、进阶、商业实战 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 目 录 IX 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 XKafka 并不难学!入门、进阶、商业实战 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 目 录 XI 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 XIIKafka 并不难学!入门、进阶、商业实战 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 构建数据结构和执行 SQ