书籍详情

Kafka进阶

Kafka进阶

作者:赵渝强 著

出版社:电子工业出版社

出版时间:2022-02-01

ISBN:9787121426537

定价:¥89.00

购买这本书可以去
内容简介
  本书基于作者多年的教学与实践进行编写,重点介绍Kafka消息系统的核心原理与架构,内容涉及开发、运维、管理与架构。全书共11章,第1章,介绍Kafka体系架构基础,包括消息系统的基本知识、Kafka的体系架构与ZooKeeper;第2章,介绍Kafka的环境部署,以及基本的应用程序开发;第3章,介绍Kafka的生产者及其运行机制,包括生产者的创建和执行过程、生产者的消息发送模式和生产者的高级特性等;第4章,介绍Kafka的消费者及其运行机制,包括消费者的消费模式、消费者组与消费者、消费者的偏移量与提交及消费者的高级特性等;第5章,介绍Kafka服务器端的核心原理,包括主题与分区、消息的持久性与传输保障、Kafka配额与日志的管理;第6章,介绍Kafka的流处理引擎Kafka Stream;第7章,介绍使用不同的工具监控Kafka,包括Kafka Manager、Kafka Tool、KafkaOffsetMonitor和JConsole;第8章至第11章,介绍Kafka与外部系统的集成,包括集成Flink、集成Storm、集成Spark和集成Flume。
作者简介
  赵渝强(赵强老师),18年以上的IT行业从业经历,清华大学计算机软件专业毕业,京东大学大数据学院院长,Oracle中国有限公司高级技术顾问,华为官方认证讲师,曾在BEA、甲骨文、摩托罗拉等世界500强公司担任高级软件架构师或咨询顾问等要职,精通大数据、数据库、容器技术、中间件技术和Java技术。
目录
第1章 Kafka体系架构基础\t1
1.1 什么是消息系统\t1
1.2 消息系统的分类\t2
1.2.1 同步消息机制与异步消息机制\t3
1.2.2 队列与主题\t4
1.3 Kafka的体系架构\t5
1.3.1 消息服务器\t6
1.3.2 主题、分区与副本\t6
1.3.3 生产者\t7
1.3.4 消费者与消费者组\t8
1.4 分布式协调服务ZooKeeper\t9
1.4.1 ZooKeeper集群的架构\t9
1.4.2 ZooKeeper的节点类型\t10
1.4.3 ZooKeeper的观察机制\t13
1.4.4 ZooKeeper的分布式锁\t14
1.4.5 ZooKeeper在Kafka中的作用\t17
1.5 准备实验环境\t17
1.5.1 安装CentOS操作系统\t17
1.5.2 配置CentOS操作系统\t23
1.5.3 安装JDK\t24
第2章 部署Kafka\t25
2.1 部署ZooKeeper\t25
2.1.1 ZooKeeper的核心配置文件\t26
2.1.2 部署ZooKeeper的Standalone模式\t28
2.1.3 部署ZooKeeper的集群模式\t32
2.1.4 测试ZooKeeper集群\t35
2.2 安装部署Kafka\t36
2.2.1 单机单Broker的部署\t40
2.2.2 单机多Broker的部署\t42
2.2.3 多机多Broker的部署\t43
2.2.4 使用命令行测试Kafka\t44
2.3 Kafka配置参数详解\t45
2.4 Kafka在ZooKeeper中保存的数据\t46
2.5 开发客户端程序测试Kafka\t47
2.5.1 开发Java版本的客户端程序\t48
2.5.2 开发Scala版本的客户端程序\t50
第3章 Kafka的生产者\t53
3.1 Kafka生产者的执行过程\t53
3.2 创建Kafka生产者\t54
3.2.1 创建基本的消息生产者\t54
3.2.2 发送自定义消息对象\t55
3.3 生产者的消息发送模式\t60
3.4 生产者的高级特性\t61
3.4.1 生产者分区机制\t61
3.4.2 生产者压缩机制\t66
3.4.3 生产者拦截器\t67
3.5 生产者的参数配置\t71
第4章 Kafka的消费者\t77
4.1 Kafka消费者的消费模式\t77
4.1.1 消息的推送模式\t77
4.1.2 消息的拉取模式\t77
4.1.3 推送模式与拉取模式的区别\t78
4.1.4 消息者组\t78
4.2 创建Kafka消费者\t79
4.2.1 创建基本的消息消费者\t79
4.2.2 接收自定义消息对象\t80
4.3 消费者与消费者组\t82
4.3.1 消费者和消费者组与分区的关系\t82
4.3.2 分区的重平衡\t85
4.4 消费者的偏移量与提交\t86
4.4.1 偏移量与重平衡\t86
4.4.2 偏移量的提交方式\t87
4.5 消费者的高级特性\t90
4.5.1 消费者的分区策略\t90
4.5.2 重平衡监听器\t93
4.5.3 消费者的拦截器\t95
4.5.4 消费者的优雅退出\t97
4.6 消费者的参数配置\t98
第5章 Kafka的服务器端\t102
5.1 主题与分区\t102
5.1.1 主题和分区的关系\t102
5.1.2 主题的管理\t103
5.1.3 使用KafkaAdminClient\t109
5.2 消息的持久性\t111
5.2.1 Kafka消息持久性概述\t111
5.2.2 Kafka的持久化原理解析\t112
5.2.3 持久化的读写流程\t114
5.2.4 为什么要建立分段和索引\t115
5.3 消息的传输保障\t115
5.3.1 生产者的ack机制\t115
5.3.2 消费者与高水位线\t116
5.4 副本和Leader副本的选举\t117
5.5 Kafka配额的管理\t118
5.6 Kafka的日志删除与压缩\t120
5.6.1 日志的删除\t120
5.6.2 日志的压缩\t120
5.6.3 清理的实现细节\t120
5.7 Kafka与ZooKeeper\t123
5.7.1 ZooKeeper扮演的角色\t123
5.7.2 Kafka在ZooKeeper中存储的数据\t124
5.8 服务器端参数设置\t125
第6章 流处理引擎Kafka Stream\t130
6.1 Kafka Stream的体系架构\t130
6.1.1 为什么需要Kafka Stream\t130
6.1.2 Kafka Stream的体系架构\t131
6.1.3 执行Kafka Stream示例程序\t132
6.2 开发自己的Kafka Stream应用程序\t134
6.3 Kafka Stream中的数据模型\t139
6.3.1 KStream与KTable\t139
6.3.2 状态管理\t141
6.4 Kafka Stream中的窗口计算\t144
6.4.1 时间\t144
6.4.2 窗口\t145
第7章 监控Kafka\t151
7.1 Kafka的监控指标\t151
7.2 使用Kafka客户端监控工具\t153
7.2.1 Kafka Manager\t153
7.2.2 Kafka Tool\t157
7.2.3 KafkaOffsetMonitor\t162
7.2.4 JConsole\t163
7.3 监控ZooKeeper\t166
第8章 Kafka与Flink集成\t168
8.1 Flink的体系架构\t168
8.1.1 Flink中的数据集\t168
8.1.2 Flink的生态圈体系\t169
8.1.3 Flink的体系架构\t171
8.2 安装部署Flink Standalone模式\t172
8.2.1 Flink Standalone模式的部署\t174
8.2.2 在Standalone模式上执行Flink任务\t178
8.3 Flink DataSet API算子\t181
8.4 Flink DataStream API算子\t191
8.5 集成Flink与Kafka\t196
8.5.1 将Kafka作为Flink的Source Connector\t197
8.5.2 将Kafka作为Flink的Sink Connector\t200
第9章 Kafka与Storm集成\t203
9.1 离线计算与流式计算\t203
9.2 Apache Storm的体系架构\t205
9.3 部署Apache Storm\t207
9.3.1 部署Storm的伪分布模式\t209
9.3.2 部署Storm的全分布模式\t213
9.3.3 Storm HA模式\t216
9.4 执行Apache Storm任务\t220
9.4.1 执行WordCountTopology\t220
9.4.2 Storm的其他管理命令\t224
9.5 开发自己的Storm任务\t224
9.5.1 Storm Topology任务处理的数据模型\t224
9.5.2 开发自己的WordCountTopology任务\t226
9.6 集成Kafka与Storm\t232
9.6.1 Storm从Kafka中接收数据\t233
9.6.2 测试Kafka与Storm的集成\t236
9.6.3 Storm将数据输出到Kafka\t238
第10章 Kafka与Spark集成\t240
10.1 Spark基础\t240
10.1.1 Spark的特点\t241
10.1.2 Spark的体系架构\t242
10.2 安装部署Spark环境\t243
10.2.1 伪分布模式的单节点环境部署\t246
10.2.2 全分布模式的环境安装部署\t248
10.3 执行Spark任务\t249
10.3.1 使用spark-submit提交任务\t249
10.3.2 交互式命令行工具spark-shell\t251
10.4 Spark的核心编程模型\t256
10.4.1 什么是RDD\t256
10.4.2 RDD的算子\t257
10.4.3 开发自己的WordCount程序\t260
10.5 流式计算引擎Spark Streaming\t264
10.5.1 什么是Spark Streaming\t264
10.5.2 离散流\t265
10.5.3 开发自己的Spark Streaming程序\t266
10.6 集成Kafka与Spark Streaming\t269
10.6.1 基于Receiver的方式\t269
10.6.2 直接读取的方式\t271
第11章 Kafka与Flume集成\t274
11.1 Apache Flume基础\t274
11.1.1 Apache Flume的体系架构\t274
11.1.2 Apache Flume的安装和部署\t278
11.2 Flume的Source组件\t280
11.3 Flume的Channel组件\t282
11.4 Flume的Sink组件\t283
11.5 集成Kafka与Flume\t287
猜您喜欢

读书导航