书籍详情
Kafka源码解析与实战
作者:王亮 著
出版社:机械工业出版社
出版时间:2017-12-01
ISBN:9787111584018
定价:¥79.00
购买这本书可以去
内容简介
本书系统介绍Kafka的实现原理和应用方法,并介绍Kafka的运维工具、客户端编程方法和第三方集成方式,深入浅出、图文并茂、分析透彻。本书共10章,主要内容包括:第1章介绍Kafka诞生的背景和主要涉及目标。第2章介绍Kafka的基本组成、拓扑结构以及内部的通信协议。第3章介绍Broker Server及内部的模块组成。第4章介绍Broker Server内部的九大基本模块。第5章介绍Broker的控制管理模块。第6章介绍Topic的管理工具。第7章从设计原则、示例代码、模块组成和发送模式四个方面介绍有关消息生产者的相关知识。第8章介绍两种消费者:简单消费者和高级消费者。第9章介绍Kafka的典型应用,包括与Storm、ELK、Hadoop、Spark典型大数据系统的集成。第10章介绍了一个综合实例,描述Kafka作为数据总线在安防整体解决方案中的作用。
作者简介
王亮 ,资深架构师,曾在华为担任虚拟化技术工程师,后加入大华公司任分布式数据库系统架构师,研究兴趣为分布式存储、分布式数据库、消息系统等。
目录
序
前言
第1章 Kafka简介 1
1.1 Kafka诞生的背景 1
1.2 Kafka在LinkedIn内部的应用 3
1.3 Kafka的主要设计目标 4
1.4 为什么使用消息系统 4
1.5 本章小结 5
第2章 Kafka的架构 6
2.1 Kafka的基本组成 6
2.2 Kafka的拓扑结构 8
2.3 Kafka内部的通信协议 9
2.4 本章小结 12
第3章 Broker概述 13
3.1 Broker的启动 13
3.2 Broker内部的模块组成 15
3.3 本章小结 18
第4章 Broker的基本模块 19
4.1 SocketServer 19
4.2 KafkaRequestHandlerPool 25
4.3 KafkaApis 27
4.3.1 LogManager 27
4.3.2 ReplicaManager 37
4.3.3 OffsetManager 47
4.3.4 KafkaScheduler 51
4.3.5 KafkaApis 52
4.4 KafkaHealthcheck 81
4.5 TopicConf?igManager 83
4.6 本章小结 85
第5章 Broker的控制管理模块 86
5.1 KafkaController的选举策略 86
5.2 KafkaController的初始化 91
5.2.1 Leader状态下KafkaController的初始化 91
5.2.2 Standby状态下KafkaController的初始化 94
5.3 Topic的分区状态转换机制 95
5.3.1 分区状态的分类 95
5.3.2 分区状态的转换 96
5.3.3 PartitionStateMachine模块的启动 102
5.4 Topic分区的领导者副本选举策略 103
5.4.1 NoOpLeaderSelector 104
5.4.2 Off?linePartitionLeaderSelector 104
5.4.3 ReassignedPartitionLeader-Selector 106
5.4.4 PreferredReplicaPartition-LeaderSelector 107
5.4.5 ControlledShutdownLeader-Selector 108
5.5 Topic分区的副本状态转换机制 109
5.5.1 副本状态的分类 110
5.5.2 副本状态的转换 111
5.5.3 ReplicaStateMachine模块的启动 117
5.6 KafkaController内部的监听器 118
5.6.1 TopicChangeListener 119
5.6.2 AddPartitionsListener 121
5.6.3 PartitionsReassignedListener 122
5.6.4 ReassignedPartitionsIsr-ChangeListener 128
5.6.5 PreferredReplicaElection-Listener 130
5.6.6 BrokerChangeListener 132
5.6.7 DeleteTopicsListener 135
5.7 Kafka集群的负载均衡流程 136
5.8 Kafka集群的Topic删除流程 140
5.9 KafkaController的通信模块 146
5.10 本章小结 150
第6章 Topic的管理工具 151
6.1 kafka-topics.sh 151
6.1.1 createTopic 153
6.1.2 alterTopic 156
6.1.3 listTopics 160
6.1.4 describeTopic 161
6.1.5 deleteTopic 163
6.2 kafka-reassign-partitions.sh 164
6.2.1 generateAssignment 166
6.2.2 executeAssignment 167
6.2.3 verifyAssignment 170
6.3 kafka-preferred-replica-election.sh 172
6.4 本章小结 175
第7章 生产者 176
7.1 设计原则 176
7.2 示例代码 176
7.3 模块组成 180
7.3.1 ProducerSendThread 180
7.3.2 ProducerPool 182
7.3.3 DefaultEventHandler 184
7.4 发送模式 189
7.4.1 同步模式 189
7.4.2 异步模式 189
7.5 本章小结 192
第8章 消费者 193
8.1 简单消费者 193
8.1.1 设计原则 193
8.1.2 消费者流程 194
8.1.3 示例代码 195
8.1.4 原理解析 200
8.2 高级消费者 202
8.2.1 设计原则 202
8.2.2 消费者流程 203
8.2.3 示例代码 204
8.2.4 原理解析 205
8.3 本章小结 227
第9章 Kafka的典型应用 228
9.1 Kafka和Storm的集成 228
9.1.1 Storm简介 228
9.1.2 示例代码 230
9.2 Kafka和ELK的集成 235
9.2.1 ELK简介 235
9.2.2 配置流程 236
9.3 Kafka和Hadoop的集成 237
9.3.1 Hadoop简介 237
9.3.2 示例代码 239
9.4 Kafka和Spark的集成 242
9.4.1 Spark简介 242
9.4.2 示例代码 245
9.5 本章小结 247
第10章 Kafka的综合实例 248
10.1 安防大数据的主要应用 248
10.2 Kafka在安防整体解决方案中的角色 249
10.3 典型业务 250
10.3.1 车辆人脸图片数据的入库 251
10.3.2 视频数据的入库 252
10.3.3 数据延时的监控 254
10.3.4 数据质量的监控 256
10.3.5 布控统计 258
10.3.6 容灾备份 259
10.4 本章小结 260
前言
第1章 Kafka简介 1
1.1 Kafka诞生的背景 1
1.2 Kafka在LinkedIn内部的应用 3
1.3 Kafka的主要设计目标 4
1.4 为什么使用消息系统 4
1.5 本章小结 5
第2章 Kafka的架构 6
2.1 Kafka的基本组成 6
2.2 Kafka的拓扑结构 8
2.3 Kafka内部的通信协议 9
2.4 本章小结 12
第3章 Broker概述 13
3.1 Broker的启动 13
3.2 Broker内部的模块组成 15
3.3 本章小结 18
第4章 Broker的基本模块 19
4.1 SocketServer 19
4.2 KafkaRequestHandlerPool 25
4.3 KafkaApis 27
4.3.1 LogManager 27
4.3.2 ReplicaManager 37
4.3.3 OffsetManager 47
4.3.4 KafkaScheduler 51
4.3.5 KafkaApis 52
4.4 KafkaHealthcheck 81
4.5 TopicConf?igManager 83
4.6 本章小结 85
第5章 Broker的控制管理模块 86
5.1 KafkaController的选举策略 86
5.2 KafkaController的初始化 91
5.2.1 Leader状态下KafkaController的初始化 91
5.2.2 Standby状态下KafkaController的初始化 94
5.3 Topic的分区状态转换机制 95
5.3.1 分区状态的分类 95
5.3.2 分区状态的转换 96
5.3.3 PartitionStateMachine模块的启动 102
5.4 Topic分区的领导者副本选举策略 103
5.4.1 NoOpLeaderSelector 104
5.4.2 Off?linePartitionLeaderSelector 104
5.4.3 ReassignedPartitionLeader-Selector 106
5.4.4 PreferredReplicaPartition-LeaderSelector 107
5.4.5 ControlledShutdownLeader-Selector 108
5.5 Topic分区的副本状态转换机制 109
5.5.1 副本状态的分类 110
5.5.2 副本状态的转换 111
5.5.3 ReplicaStateMachine模块的启动 117
5.6 KafkaController内部的监听器 118
5.6.1 TopicChangeListener 119
5.6.2 AddPartitionsListener 121
5.6.3 PartitionsReassignedListener 122
5.6.4 ReassignedPartitionsIsr-ChangeListener 128
5.6.5 PreferredReplicaElection-Listener 130
5.6.6 BrokerChangeListener 132
5.6.7 DeleteTopicsListener 135
5.7 Kafka集群的负载均衡流程 136
5.8 Kafka集群的Topic删除流程 140
5.9 KafkaController的通信模块 146
5.10 本章小结 150
第6章 Topic的管理工具 151
6.1 kafka-topics.sh 151
6.1.1 createTopic 153
6.1.2 alterTopic 156
6.1.3 listTopics 160
6.1.4 describeTopic 161
6.1.5 deleteTopic 163
6.2 kafka-reassign-partitions.sh 164
6.2.1 generateAssignment 166
6.2.2 executeAssignment 167
6.2.3 verifyAssignment 170
6.3 kafka-preferred-replica-election.sh 172
6.4 本章小结 175
第7章 生产者 176
7.1 设计原则 176
7.2 示例代码 176
7.3 模块组成 180
7.3.1 ProducerSendThread 180
7.3.2 ProducerPool 182
7.3.3 DefaultEventHandler 184
7.4 发送模式 189
7.4.1 同步模式 189
7.4.2 异步模式 189
7.5 本章小结 192
第8章 消费者 193
8.1 简单消费者 193
8.1.1 设计原则 193
8.1.2 消费者流程 194
8.1.3 示例代码 195
8.1.4 原理解析 200
8.2 高级消费者 202
8.2.1 设计原则 202
8.2.2 消费者流程 203
8.2.3 示例代码 204
8.2.4 原理解析 205
8.3 本章小结 227
第9章 Kafka的典型应用 228
9.1 Kafka和Storm的集成 228
9.1.1 Storm简介 228
9.1.2 示例代码 230
9.2 Kafka和ELK的集成 235
9.2.1 ELK简介 235
9.2.2 配置流程 236
9.3 Kafka和Hadoop的集成 237
9.3.1 Hadoop简介 237
9.3.2 示例代码 239
9.4 Kafka和Spark的集成 242
9.4.1 Spark简介 242
9.4.2 示例代码 245
9.5 本章小结 247
第10章 Kafka的综合实例 248
10.1 安防大数据的主要应用 248
10.2 Kafka在安防整体解决方案中的角色 249
10.3 典型业务 250
10.3.1 车辆人脸图片数据的入库 251
10.3.2 视频数据的入库 252
10.3.3 数据延时的监控 254
10.3.4 数据质量的监控 256
10.3.5 布控统计 258
10.3.6 容灾备份 259
10.4 本章小结 260
猜您喜欢