這是一個數據大爆炸的時代,網際網路成為了數據傳播的主要載體。大數據處理平台在現代化的網際網路公司進行商業決策、規劃發展、市場拓展等方面扮演著越來越重要的角色。Kafka作為大數據平台的重要組件之一,受到越來越多的設計人員和開發人員的青睞,Kafka的社區也變得越來越活躍,Kafka本身的架構設計、應用場景也得到了長足的發展。
由於篇章問題就不一一解釋了,需要學習這份 Kafka源碼剖析實戰文檔的朋友:關注我 + 轉發文章,後台私信【kafka】即可免費獲取
第1章是Kafka的快速入門,其中介紹了 Kaflca的背景、特性以及應用場景。之後介紹了筆者在實踐中遇到的一個以Kafka為中心的案例,並分析了在此案例中選擇使用Kafka的具體原因和Kafka起到的關鍵作用。最後介紹了 Kafka中的核心概念和Kafka源碼調試環境的搭建。
第1章 快速入門
- 1.1 Kafka簡介
- 1.2 以Kafka為中心的解決方案
- 1.3 Kafka核心概念
- 1.4 搭建Kafka源碼環境
第2章介紹了生產者客戶端的設計特點和實現細節,剖析了 KafkaProducer攔截消息、序列化消息、路由消息等功能的源碼實現,介紹了 RecordAccumulator的結構和實現。最後剖析了 KafkaProducer中Sender線程的源碼。
第2章 生產者
- 2.1 KafkaProducer使用示例
- 2.2 KafkaProducer分析
- 2.2.1 ProducerInterceptors&ProducerInterceptor
- 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章介紹了 Kafka的消息傳遞保證語義並給出了相關的實踐建議,還介紹了 ConsumerGroup Rebalance操作各個版本方案的原理和弊端。最後詳細剖析了 KafkaConsumer相關組件的運行原理和實現細節。
第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章介紹了構成Kaflca服務端的各個組件,依次分析了 Kaflca網絡層、API層、日誌存儲、DelayedOperationPurgatory 組件、Kafka 的副本機制、KafkaController. GroupCoordinator、Kafka的身份認證與權限控制以及Kafka監控相關的實現。本章是Kafka的核心內容,涉及較多的設計細節和編程技巧,希望讀者閱讀之後有所收穫。
第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提供的多個腳本工具的使用以及具體實現原理,了解這些腳本可以幫助管理人員快速完成一些常見的管理、運維、測試功能。
第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腳本
深入淺出地分析了 Kafka的原始碼,無論是剛接觸Kafka的菜鳥,還是已經有多年Kafka使用經驗的老鳥,這本書都能讓你有所收穫。
大型分布式系統猶如一個生命,系統中各個服務猶如骨骼,其中的數據猶如血液,而Kafka猶如經絡,串聯整個系統。《 Kafka源碼剖析實戰》通過大量的設計圖展示、代碼分析、示例分享,把Kafka的實現脈絡展示在讀者面前,幫助讀者更好地研讀Kafka代碼
由於文檔的內容過多,只截取了目錄部分,
需要這份Kafka源碼剖析實戰的朋友:關注我 + 轉發文章,後台私信【kafka】即可免費獲取