本书从LinkedIn(领英)公司内部大数据架构讲起,引申出消息队列Kafka,着讲解Kafka的基本架构,然后着重分析Kafka内部的各模块实现细节。从诞生背景至架构组成,再到内部实现细节,由浅深,循序渐。本书不仅讲解Kafka内部的实现原理,而且还详细描述Kafka外部的维护工具,对外的客户端编程原理以及和第三方集成的方式。本书在讲解Kafka的过程中穿插了大量的图片,图文并茂,生动形象,使读者能更加深地熟悉Kafka。
售 价:¥
纸质售价:¥57.00购买纸书
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
前言
阅读指南
本书特点
读者对象
致谢
第1章 Kafka简介
1.1 Kafka诞生的背景
1.2 Kafka在LinkedIn内部的应用
1.3 Kafka的主要设计目标
1.4 为什么使用消息系统
1.5 本章小结
第2章 Kafka的架构
2.1 Kafka的基本组成
2.2 Kafka的拓扑结构
2.3 Kafka内部的通信协议
2.4 本章小结
第3章 Broker概述
3.1 Broker的启动
3.2 Broker内部的模块组成
3.3 本章小结
第4章 Broker的基本模块
4.1 SocketServer
4.2 KafkaRequestHandlerPool
4.3 KafkaApis
4.3.1 LogManager
4.3.1.1 Kafka的日志组成
4.3.1.2 Kafka的消息读取
4.3.1.3 LogManager的启动
4.3.2 ReplicaManager
4.3.2.1 becomeLeaderOrFollower处理流程
4.3.2.2 stopReplicas处理流程
4.3.2.3 maybeShrinkIsr处理流程
4.3.3 OffsetManager
4.3.3.1 Consumer偏移量的保存
4.3.3.2 Consumer偏移量的读取
4.3.3.3 Compact策略
4.3.4 KafkaScheduler
4.3.5 KafkaApis
4.3.5.1 ProducerRequest
4.3.5.2 FetchRequest
4.3.5.3 OffsetRequest
4.3.5.4 TopicMetadataRequest
4.3.5.5 LeaderAndIsrRequest
4.3.5.6 StopReplicaRequest
4.3.5.7 UpdateMetadataRequest
4.3.5.8 ControlledShutdownRequest
4.3.5.9 OffsetCommitRequest
4.3.5.10 OffsetFetchRequest
4.3.5.11 ConsumerMetadataRequest
4.4 KafkaHealthcheck
4.5 TopicConfigManager
4.6 本章小结
第5章 Broker的控制管理模块
5.1 KafkaController的选举策略
5.2 KafkaController的初始化
5.2.1 Leader状态下KafkaController的初始化
5.2.2 Standby状态下KafkaController的初始化
5.3 Topic的分区状态转换机制
5.3.1 分区状态的分类
5.3.2 分区状态的转换
5.3.2.1 NonExistentPartition->NewPartition
5.3.2.2 NewPartition、OnlinePartition、OfflinePartition->OnlinePartition
5.3.2.3 NewPartition、OnlinePartition、OfflinePartition->OfflinePartition
5.3.2.4 OfflinePartition->NonExistentPartition
5.3.3 PartitionStateMachine模块的启动
5.4 Topic分区的领导者副本选举策略
5.4.1 NoOpLeaderSelector
5.4.2 OfflinePartitionLeaderSelector
5.4.3 ReassignedPartitionLeaderSelector
5.4.4 PreferredReplicaPartitionLeaderSelector
5.4.5 ControlledShutdownLeaderSelector
5.5 Topic分区的副本状态转换机制
5.5.1 副本状态的分类
5.5.2 副本状态的转换
5.5.2.1 NonExistentReplica->NewReplica
5.5.2.2 NewReplica、OnlineReplica、OfflineReplica、ReplicaDeletionIneligible->OnlineReplica
5.5.2.3 NewReplica、OnlineReplica、OfflineReplica、ReplicaDeletionIneligible->OfflineReplica
5.5.2.4 OfflineReplica->ReplicaDeletionStarted
5.5.2.5 ReplicaDeletionStarted->ReplicaDeletionSuccessful
5.5.2.6 ReplicaDeletionStarted->ReplicaDeletionIneligible
5.5.2.7 ReplicaDeletionSuccessful->NonExistentReplica
5.5.3 ReplicaStateMachine模块的启动
5.6 KafkaController内部的监听器
5.6.1 TopicChangeListener
5.6.2 AddPartitionsListener
5.6.3 PartitionsReassignedListener
5.6.4 ReassignedPartitionsIsrChangeListener
5.6.5 PreferredReplicaElectionListener
5.6.6 BrokerChangeListener
5.6.7 DeleteTopicsListener
5.7 Kafka集群的负载均衡流程
5.8 Kafka集群的Topic删除流程
5.9 KafkaController的通信模块
5.10 本章小结
第6章 Topic的管理工具
6.1 kafka-topics.sh
6.1.1 createTopic
6.1.2 alterTopic
6.1.3 listTopics
6.1.4 describeTopic
6.1.5 deleteTopic
6.2 kafka-reassign-partitions.sh
6.2.1 generateAssignment
6.2.2 executeAssignment
6.2.3 verifyAssignment
6.3 kafka-preferred-replica-election.sh
6.4 本章小结
第7章 生产者
7.1 设计原则
7.2 示例代码
7.3 模块组成
7.3.1 ProducerSendThread
7.3.2 ProducerPool
7.3.3 DefaultEventHandler
7.4 发送模式
7.4.1 同步模式
7.4.2 异步模式
7.5 本章小结
第8章 消费者
8.1 简单消费者
8.1.1 设计原则
8.1.2 消费者流程
8.1.3 示例代码
8.1.4 原理解析
8.2 高级消费者
8.2.1 设计原则
8.2.2 消费者流程
8.2.3 示例代码
8.2.4 原理解析
8.2.4.1 ConsumerThread和Partition的分配算法
8.2.4.2 ConsumerFetcherThread的消费流程
8.2.4.3 KafkaStream遍历Blocking Queue的流程
8.2.4.4 KafkaStream的负载均衡流程
8.2.4.5 偏移量的持久化机制
8.3 本章小结
第9章 Kafka的典型应用
9.1 Kafka和Storm的集成
9.1.1 Storm简介
9.1.2 示例代码
9.2 Kafka和ELK的集成
9.2.1 ELK简介
9.2.2 配置流程
9.3 Kafka和Hadoop的集成
9.3.1 Hadoop简介
9.3.2 示例代码
9.3.2.1 Hadoop-Producer
9.3.2.2 Hadoop-Consumer
9.4 Kafka和Spark的集成
9.4.1 Spark简介
9.4.2 示例代码
9.4.2.1 Direct方式
9.4.2.2 Receiver方式
9.5 本章小结
第10章 Kafka的综合实例
10.1 安防大数据的主要应用
10.2 Kafka在安防整体解决方案中的角色
10.3 典型业务
10.3.1 车辆人脸图片数据的入库
10.3.2 视频数据的入库
10.3.3 数据延时的监控
10.3.4 数据质量的监控
10.3.5 布控统计
10.3.6 容灾备份
10.4 本章小结
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜