本书以 Kafka 0.10.0 版本源码为基础,针对 Kafka的架构设计到实现细节进行详细阐述。本书共5 章,从 Kafka 的应用场景、源码环境搭建开始逐步深入,对 Kafka 的核心概念进行分析介绍,对 Kafka 生产者、消费者、服务端的源码进行深入的剖析,后介绍 Kafka 常用的管理脚本实现,让读者不仅从宏观设计上了解 Kafka,而且能够深入到 Kafka 的细节设计之中。在源码分析的过程中,还穿插了笔者工作积累的经验分析和对 Kafka 设计的理解,希望能够让读者可以举一反三,不仅知其然,而且知其所以然。本书旨在为读者阅读 Kafka 源码提供帮助和指导,让读者更加深入地了解 Kafka 的运行原理、设计理念,让读者在设计分布式系统时可以参考 Kafka 的设计。本书的内容对于读者提升自己的技术能力有很大帮助。
Kafka是一种高吞吐量的分布式订阅消息系统,,本书以Kafka 0.10.0版本源码为基础,深入剖析了Kafka的各个模块的实现,包括Kafka的生产者客户端、消费者客户端、服务端的各个模块以及常用的管理脚本。作者对Kafka设计的理解和经验分享也穿插在了剖析源码的过程中,可以帮助读者学习Kafka中的设计思想以及Java和Scala的编程技巧和规范。
徐郡明,武汉大学硕士,目前就职于航天科技集团旗下某研究所,主要负责政企云平台基础架构的设计和研发工作,有多年Kafka应用和设计经验。长期关注大数据处理相关技术以及Kafka的发展。
目?录
第1章快速入门
1.1Kafka简介
1.2以Kafka为中心的解决方案
1.3Kafka核心概念
1.4搭建Kafka源码环境
本章小结
第2章生产者
2.1 KafkaProducer使用示例
2.2KafkaProducer分析
2.2.1ProducerInterceptors&ProducerInterceptor
2.2.2Kafka集群元数据
2.2.3Serializer&Deserializer
2.2.4Partitioner
2.3RecordAccumulator分析
2.3.1MemoryRecords
2.3.2RecordBatch
2.3.3BufferPool
2.3.4RecordAccumulator
2.4Sender分析
2.4.1创建请求
2.4.2KSelector
2.4.3InFlightRequests
2.4.4MetadataUpdater
2.4.5NetworkClient
本章小结
第3章消费者
3.1KafkaConsumer使用示例
3.2传递保障语义(Delivery guarantee semantic)
3.3Consumer Group Rebalance设计
3.4KafkaConsumer分析
3.4.1ConsumerNetworkClient
3.4.2SubscriptionState
3.4.3ConsumerCoordinator
3.4.4PartitionAssignor分析
3.4.5Heartbeat分析
3.4.6Rebalance实现
3.4.7offset操作
3.4.8Fetcher
3.4.9KafkaConsumer分析总结
本章小结
第4章Kafka服务端
4.1网络层
4.1.1Reactor模式
4.1.2SocketServer
4.1.3AbstractServerThread
4.1.4Acceptor
4.1.5Processor
4.1.6RequestChannel
4.2API层
4.2.1KafkaRequestHandler
4.2.2KafkaApis
4.3日志存储
4.3.1基本概念
4.3.2FileMessageSet
4.3.3ByteBufferMessageSet
4.3.4OffsetIndex
4.3.5LogSegment
4.3.6Log
4.3.7LogManager
4.4DelayedOperationPurgatory组件
4.4.1TimingWheel
4.4.2SystemTimer
4.4.3DelayedOperation
4.4.4DelayedOperationPurgatory
4.4.5DelayedProduce
4.4.6DelayedFetch
4.5副本机制
4.5.1副本
4.5.2分区
4.5.3ReplicaManager
4.6KafkaController
4.6.1ControllerChannelManager
4.6.2ControllerContext
4.6.3ControllerBrokerRequestBatch
4.6.4PartitionStateMachine
4.6.5PartitionLeaderSelector
4.6.6ReplicaStateMachine
4.6.7ZooKeeper Listener
4.6.8KafkaController初始化与故障转移
4.6.9处理ControlledShutdownRequest
4.7GroupCoordinator
4.7.1GroupMetadataManager
4.7.2GroupCoordinator分析
4.8身份认证与权限控制
4.8.1配置SASL/PLAIN认证
4.8.2身份认证
4.8.3权限控制
4.9Kafka监控
4.9.1JMX简介
4.9.2Metrics简介
4.9.3Kafka中的Metrics
4.9.4Kafka的监控功能
4.9.5监控KSelector的指标
第5章Kafka Tool
5.1kafka-server-start脚本
5.2kafka-topics脚本
5.2.1创建Topic
5.2.2修改Topic
5.3kafka-preferred-replica-election脚本
5.4kafka-reassign-partitions脚本
5.5kafka-console-producer脚本
5.6kafka-console-consumer脚本
5.7kafka-consumer-groups脚本
5.8DumpLogSegments
5.9kafka-producer-perf-test脚本
5.10kafka-consumer-perf-test脚本
5.11kafka-mirror-maker脚本
本章小结
《Apache Kafka源码剖析》一书深入浅出地分析了Kafka的源代码,无论是刚接触Kafka的菜鸟,还是已经有多年Kafka使用经验的老鸟,这本书都能让你有所收获。
——搜狗高级研发工程师 张亚森
Kafka是大数据平台中的关键部分之一。《Apache Kafka源码剖析》细致地剖析了Kafka的运行原理和架构设计,在带领读者进入Kafka源码世界的同时,也分析了许多设计经验,是一本不可多得的好书。
——华为高级研发工程师张占龙
在阅读《Apache Kafka源码剖析》时,作者在每一章节中都会给我意外之惊喜。作者对Kafka源代码已有相当深刻的理解,此书代码分析过程逻辑清晰,详略得当,实属不易。
——网易游戏高级数据挖掘研究员杨威
大型分布式系统犹如一个生命,系统中各个服务犹如骨骼,其中的数据犹如血液,而Kafka犹如经络,串联整个系统。《Apache Kafka源码剖析》通过大量的设计图展示、代码分析、示例分享,把Kafka的实现脉络展示在读者面前,帮助读者更好地研读Kafka代码。
——今日头条高级研发工程师刘克刚
《Apache Kafka源码剖析》中汇集了作者多年Kafka开发经验,为读者深入学习Kafka实现指明了方向。对于想学习Kafka的程序员来说,这是一本非常不错的进阶书籍。
——美团高级研发工程师刘思
学习Kafka,到时找个好工作
还没看,先评论吧
还不错的书,学习了
书本包装还是很不错的
这是我购买这么多次书以来当当做的最差的一次。简易的包装导致收到书时出现运送问题造成的挤压变型,包装袋破损造成书本变脏。买新书追求的就是新书的样子。
跑一个厂区去收货。下次真不能在当当买了
不错,学习中,拓展自己知识,推荐购买!
看了一部分,挺好
实用,专业
应该不错 还没来得及看
新书,先读再说。
书还不错,值得看看…
很好,很有用
还没看,等看了再说
为了提升自己多学点买的