猜你喜欢
Kafka入门与实践

Kafka入门与实践

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

本书以Kafka 0.10.1.1版本以基础,对Kafka的基本组件的实现细节及其基本应用进行了详细介绍,同时,通过对Kafka与当前大数据主流框架整合应用案例的讲解,进一步展现了Kafka在实际业务中的作用和地位。本书共10章,按照从抽象到具体、从点到线再到面的学习思维模式,由浅入深,理论与实践相结合,对Kafka进行了分析讲解。

本书中的大量实例来源于作者在实际工作中的实践,具有现实指导意义。相信读者阅读完本书之后,能够全面掌握Kafka的基本实现原理及其基本操作,能够根据书中的案例举一反三,解决实际工作和学习中的问题。此外,在阅读本书时,读者可以根据本书对Kafka理论的分析,再结合Kafka源码进行定位学习,了解Kafka优秀的设计和思想以及更多的编码技巧。

本书适合应用Kafka的专业技术人员阅读,包括但不限于大数据相关应用的开发者、运维者...

作者简介

牟大恩,武汉大学硕士,曾先后在网易杭州研究院、掌门科技、优酷土豆集团担任高级开发工程师和资深开发工程师职务,目前就职于海通证券总部。有多年的Java开发及系统设计经验,专注于互联网金融及大数据应用相关领域。

编辑推荐
Kafka最初是由LinkedIn公司开发的消息系统,现在已成为Apache的开源项目。早期版本的Kafka主要是作为一个分布式、可分区和具有副本的消息系统,随着版本的不断迭代,在0.10.x版本之后Kafka已成为一个分布式流数据处理平台,特别是KafkaStreams的出现,使得Kafka对流数据处理变得更加简单。
  Kafka发展至今已具备很多特性,如分布式、高吞吐量、低延迟、高水平扩展性、高容错性等,也正是由于Kafka具备这些特性,使Kafka在大数据处理、日志收集、实时监控、离线统计分析等应用场景都被广泛使用。
  本书内容按照从抽象到具体、从点到线再到面的学习思维模式进行编排,由浅入深、理论与实践相结合地对Kafka进行了讲解和分析。剖析Kafka实现原理时,Kafka核心组件各成一节;讲解Kafka基本操作及应用实践时,从简单操作拓展到高级应用。全书的各章之间没有很强的依赖关系,读者可以从其中任何一章开始阅读。
  本书虽适合作为入门书籍,但其内容丰富又不失深度,既深入剖析了Kafka核心原理,又侧重实际操作实战。阅读本书读者不仅可以掌握如何应用Kafka,更重要的是还可以了解Kafka性能优化和Kafka相关功能改造方面的方法和理论。
  本书是基于Kafka的0.10.1.1版本编写的。
目录
第1章 Kafka简介 1
1.1 Kafka背景 1
1.2 Kafka基本结构 2
1.3 Kafka基本概念 2
1.4 Kafka设计概述 6
1.4.1 Kafka设计动机 6
1.4.2 Kafka特性 6
1.4.3 Kafka应用场景 8
1.5 本书导读 9
1.6 小结 9
第2章 Kafka安装配置 11
2.1 基础环境配置 11
2.1.1 JDK安装配置 11
2.1.2 SSH安装配置 13
2.1.3 ZooKeeper环境 15
2.2 Kafka单机环境部署 18
2.2.1 Windows环境安装Kafka 19
2.2.2 Linux环境安装Kafka 19
2.3 Kafka伪分布式环境部署 21
2.4 Kafka集群环境部署 22
2.5 Kafka Manager安装 22
2.6 Kafka源码编译 25
2.6.1 Scala安装配置 25
2.6.2 Gradle安装配置 26
2.6.3 Kafka源码编译 26
2.6.4 Kafka导入Eclipse 30
2.7 小结 31
第3章 Kafka核心组件 33
3.1 延迟操作组件 33
3.1.1 DelayedOperation 33
3.1.2 DelayedOperationPurgatory 35
3.1.3 DelayedProduce 36
3.1.4 DelayedFetch 38
3.1.5 DelayedJoin 38
3.1.6 DelayedHeartbeat 39
3.1.7 DelayedCreateTopics 40
3.2 控制器 40
3.2.1 控制器初始化 41
3.2.2 控制器选举过程 46
3.2.3 故障转移 48
3.2.4 代理上线与下线 49
3.2.5 主题管理 51
3.2.6 分区管理 54
3.3 协调器 58
3.3.1 消费者协调器 58
3.3.2 组协调器 60
3.4 网络通信服务 64
3.4.1 Acceptor 65
3.4.2 Processor 66
3.4.3 RequestChannel 68
3.4.4 SocketServer启动过程 69
3.5 日志管理器 70
3.5.1 Kafka日志结构 70
3.5.2 日志管理器启动过程 77
3.5.3 日志加载及恢复 79
3.5.4 日志清理 80
3.6 副本管理器 84
3.6.1 分区 86
3.6.2 副本 88
3.6.3 副本管理器启动过程 89
3.6.4 副本过期检查 90
3.6.5 追加消息 92
3.6.6 拉取消息 95
3.6.7 副本同步过程 97
3.6.8 副本角色转换 99
3.6.9 关闭副本 101
3.7 Handler 103
3.8 动态配置管理器 104
3.9 代理健康检测 106
3.10 Kafka内部监控 107
3.11 小结 110
第4章 Kafka核心流程分析 111
4.1 KafkaServer启动流程分析 111
4.2 创建主题流程分析 115
4.2.1 客户端创建主题 115
4.2.2 分区副本分配 117
4.3 生产者 121
4.3.1 Eclipse运行生产者源码 121
4.3.2 生产者重要配置说明 123
4.3.3 OldProducer执行流程 124
4.3.4 KafkaProducer实现原理 127
4.4 消费者 140
4.4.1 旧版消费者 140
4.4.2 KafkaConsumer初始化 140
4.4.3 消费订阅 144
4.4.4 消费消息 145
4.4.5 消费偏移量提交 149
4.4.6 心跳探测 150
4.4.7 分区数与消费者线程的关系 151
4.4.8 消费者平衡过程 153
4.5 小结 154
第5章 Kafka基本操作实战 155
5.1 KafkaServer管理 155
5.1.1 启动Kafka单个节点 155
5.1.2 启动Kafka集群 159
5.1.3 关闭Kafka单个节点 160
5.1.4 关闭Kafka集群 161
5.2 主题管理 162
5.2.1 创建主题 162
5.2.2 删除主题 164
5.2.3 查看主题 165
5.2.4 修改主题 166
5.3 生产者基本操作 168
5.3.1 启动生产者 168
5.3.2 创建主题 169
5.3.3 查看消息 170
5.3.4 生产者性能测试工具 170
5.4 消费者基本操作 174
5.4.1 消费消息 174
5.4.2 单播与多播 179
5.4.3 查看消费偏移量 181
5.4.4 消费者性能测试工具 183
5.5 配置管理 183
5.5.1 主题级别配置 184
5.5.2 代理级别设置 185
5.5.3 客户端/用户级别配置 187
5.6 分区操作 188
5.6.1 分区Leader平衡 188
5.6.2 分区迁移 190
5.6.3 增加分区 194
5.6.4 增加副本 195
5.7 连接器基本操作 198
5.7.1 独立模式 198
5.7.2 REST风格API应用 201
5.7.3 分布式模式 204
5.8 Kafka Manager应用 209
5.9 Kafka安全机制 211
5.9.1 利用SASL/PLAIN进行身份认证 212
5.9.2 权限控制 215
5.10 镜像操作 218
5.11 小结 219
第6章 Kafka API编程实战 221
6.1 主题管理 222
6.1.1 创建主题 222
6.1.2 修改主题级别配置 223
6.1.3 增加分区 224
6.1.4 分区副本重分配 224
6.1.5 删除主题 225
6.2 生产者API应用 225
6.2.1 单线程生产者 226
6.2.2 多线程生产者 231
6.3 消费者API应用 233
6.3.1 旧版消费者API应用 233
6.3.2 新版消费者API应用 239
6.4 自定义组件实现 247
6.4.1 分区器 247
6.4.2 序列化与反序列化 249
6.5 Spring与Kafka整合应用 257
6.5.1 生产者 259
6.5.2 消费者 263
6.6 小结 266
第7章 Kafka Streams 267
7.1 Kafka Streams简介 267
7.2 Kafka Streams基本概念 268
7.2.1 流 268
7.2.2 流处理器 268
7.2.3 处理器拓扑 268
7.2.4 时间 269
7.2.5 状态 270
7.2.6 KStream和KTable 270
7.2.7 窗口 271
7.3 Kafka Streams API介绍 272
7.3.1 KStream与KTable 272
7.3.2 窗口操作 274
7.3.3 连接操作 275
7.3.4 变换操作 277
7.3.5 聚合操作 279
7.4 接口恶意访问自动检测 281
7.4.1 应用描述 281
7.4.2 具体实现 282
7.5 小结 285
第8章 Kafka数据采集应用 287
8.1 Log4j集成Kafka应用 287
8.1.1 应用描述 287
8.1.2 具体实现 287
8.2 Kafka与Flume整合应用 289
8.2.1 Flume简介 290
8.2.2 Flume与Kafka比较 291
8.2.3 Flume的安装配置 291
8.2.4 Flume采集日志写入Kafka 293
8.3 Kafka与Flume和HDFS整合应用 294
8.3.1 Hadoop安装配置 295
8.3.2 Flume采集Kafka消息写入HDFS 298
8.4 小结 301
第9章 Kafka与ELK整合应用 303
9.1 ELK环境搭建 304
9.1.1 Elasticsearch安装配置 304
9.1.2 Logstash安装配置 307
9.1.3 Kibana安装配置 308
9.2 Kafka与Logstash整合 309
9.2.1 Logstash收集日志到Kafka 309
9.2.2 Logstash从Kafka消费日志 310
9.3 日志采集分析系统 312
9.3.1 Flume采集日志配置 312
9.3.2 Logstash拉取日志配置 313
9.3.3 Kibana日志展示 314
9.4 服务器性能监控系统 315
9.4.1 Metricbeat安装 316
9.4.2 采集信息存储到Elasticsearch 316
9.4.3 加载beats-dashboards 318
9.4.4 服务器性能监控系统具体实现 318
9.5 小结 321
第10章 Kafka与Spark整合应用 323
10.1 Spark简介 323
10.2 Spark基本操作 324
10.2.1 Spark安装 325
10.2.2 Spark shell应用 326
10.2.3 spark-submit提交作业 327
10.3 Spark在智能投顾领域应用 328
10.3.1 应用描述 328
10.3.2 具体实现 329
10.4 热搜词统计 334
10.4.1 应用描述 334
10.4.2 具体实现 335
10.5 小结 340
标签
分布式,软件开发,计算机,程序设计,技术,programming,Kafka