本書以 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,到時找個好工作
還沒看,先評論吧
還不錯的書,學習了
書本包裝還是很不錯的
這是我購買這么多次書以來當當做的最差的一次。簡易的包裝導致收到書時出現運送問題造成的擠壓變型,包裝袋破損造成書本變臟。買新書追求的就是新書的樣子。
跑一個廠區去收貨。下次真不能在當當買了
不錯,學習中,拓展自己知識,推薦購買!
看了一部分,挺好
實用,專業
應該不錯 還沒來得及看
新書,先讀再說。
書還不錯,值得看看…
很好,很有用
還沒看,等看了再說
為了提升自己多學點買的