內容提要
《Apache Kafka源碼剖析》以Kafka 0.10.0版本源碼為基礎,針對Kafka的架構設計到實現細節進行詳細闡述。《Apache Kafka源碼剖析》共5章,從Kafka的套用場景、源碼環境搭建開始逐步深入,不僅介紹Kafka的核心概念,而且對Kafka生產者、消費者、服務端的源碼進行深入的剖析,最後介紹Kafka常用的管理腳本實現,讓讀者不僅從巨觀設計上了解Kafka,而且能夠深入到Kafka的細節設計之中。在源碼分析的過程中,還穿插了筆者工作積累的經驗和對Kafka設計的理解,希望讀者可以舉一反三,不僅知其然,而且知其所以然。
《Apache Kafka源碼剖析》旨在為讀者閱讀Kafka源碼提供幫助和指導,讓讀者更加深入地了解Kafka的運行原理、設計理念,讓讀者在設計分散式系統時可以參考Kafka的優秀設計。《Apache Kafka源碼剖析》的內容對於讀者全面提升自己的技術能力有很大幫助。
目錄
第1章 快速入門
1.1 Kafka簡介
1.2 以Kafka為中心的解決方案
1.3 Kafka核心概念
1.4 搭建Kafka源碼環境
本章小結
第2章 生產者
2.1 KafkaProducer使用示例
2.2 KafkaProducer分析
2.2.1 ProducerInterceptors⪻oducerInterceptor
2.2.2 Kafka集群元數據
2.2.3 Serializer&Deserializer
2.2.4 Partitioner
2.3 RecordAccumulator分析
2.3.1 MemoryRecords
2.3.2 RecordBatch
2.3.3 BufferPool
2.3.4 RecordAccumulator
2.4 Sender分析
2.4.1 創建請求
2.4.2 KSelector
2.4.3 InFlightRequests
2.4.4 MetadataUpdater
2.4.5 NetworkClient
本章小結
第3章 消費者
3.1 KafkaConsumer使用示例
3.2 傳遞保證語義(Delivery guarantee semantic)
3.3 Consumer Group Rebalance設計
3.4 KafkaConsumer分析
3.4.1 ConsumerNetworkClient
3.4.2 SubscriptionState
3.4.3 ConsumerCoordinator
3.4.4 PartitionAssignor分析
3.4.5 Heartbeat分析
3.4.6 Rebalance實現
3.4.7 offset操作
3.4.8 Fetcher
3.4.9 KafkaConsumer分析總結
本章小結
第4章 Kafka服務端
4.1 網路層
4.1.1 Reactor模式
4.1.2 SocketServer
4.1.3 AbstractServerThread
4.1.4 Acceptor
4.1.5 Processor
4.1.6 RequestChannel
4.2 API層
4.2.1 KafkaRequestHandler
4.2.2 KafkaApis
4.3 日誌存儲
4.3.1 基本概念
4.3.2 FileMessageSet
4.3.3 ByteBufferMessageSet
4.3.4 OffsetIndex
4.3.5 LogSegment
4.3.6 Log
4.3.7 LogManager
4.4 DelayedOperationPurgatory組件
4.4.1 TimingWheel
4.4.2 SystemTimer
4.4.3 DelayedOperation
4.4.4 DelayedOperationPurgatory
4.4.5 DelayedProduce
4.4.6 DelayedFetch
4.5 副本機制
4.5.1 副本
4.5.2 分區
4.5.3 ReplicaManager
4.6 KafkaController
4.6.1 ControllerChannelManager
4.6.2 ControllerContext
4.6.3 ControllerBrokerRequestBatch
4.6.4 PartitionStateMachine
4.6.5 PartitionLeaderSelector
4.6.6 ReplicaStateMachine
4.6.7 ZooKeeper Listener
4.6.8 KafkaController初始化與故障轉移
4.6.9 處理ControlledShutdownRequest
4.7 GroupCoordinator
4.7.1 GroupMetadataManager
4.7.2 GroupCoordinator分析
4.8 身份認證與許可權控制
4.8.1 配置SASL/PLAIN認證
4.8.2 身份認證
4.8.3 許可權控制
4.9 Kafka監控
4.9.1 JMX簡介
4.9.2 Metrics簡介
4.9.3 Kafka中的Metrics
4.9.4 Kafka的監控功能
4.9.5 監控KSelector的指標
第5章 Kafka Tool
5.1 kafka-server-start腳本
5.2 kafka-topics腳本
5.2.1 創建Topic
5.2.2 修改Topic
5.3 kafka-preferred-replica-election腳本
5.4 kafka-reassign-partitions腳本
5.5 kafka-console-producer腳本
5.6 kafka-console-consumer腳本
5.7 kafka-consumer-groups腳本
5.8 DumpLogSegments
5.9 kafka-producer-perf-test腳本
5.10 kafka-consumer-perf-test腳本
5.11 kafka-mirror-maker腳本
本章小結