在大資料、高并發的系統中,為了突破瓶頸,會將系統進行水平擴展和垂直拆分,形成獨立的服務,每個獨立的服務背后,可能是一個集群在對外提供服務,這就會碰到一個問題,整個系統是由多個服務(子系統)組成的,資料需要在各個服務中不停流轉,如果資料在各個子系統中傳輸時,速度過慢,就會形成瓶頸,降低整個系統的性能,從而就形成了以Kafka為中心的解決方案!
因為閱讀Kafka原始碼重要性就不言而喻,今天小編就分享一份拼多多Kafka的原始碼筆記,現已面向大眾全面開源!(為了不影響大家的閱讀體驗,免費獲取方式放在了文末!)

這份筆記從Kafka的應用場景、原始碼環境搭建開始逐步深人,不僅介紹Kafka的核心概念,而且對Kafka生產者、消費者、服務端的原始碼進行深人的剖析,最后介紹Kafka常用的管理腳本實作,讓讀者不僅從宏觀設計上了解Kafka,而且能夠深人到Kafka的細節設計之中,在原始碼分析的程序中,還穿插了筆者作業積累的經驗和對Kafka設計的理解,希望讀者可以舉一反三, 不僅知其然,而且知其所以然,
第1章快速入門
1.1 Kafka簡介
1.2 以Kafka為中心的解決方案
1.3 Kafka核心概念
1.4 Kafka原始碼環境

第2章生產者
2.1 KafkaProducer 使用示例
2.2 KafkaProducer 分析
- ProducerInterceptors&cProducerInterceptor
- Kafka 集群元資料
- Serializer&Deserializer
- Partitioner

2.3 RecordAccumulator分析
- MemoryR ecords
- RecordBatch
- BufferPool
- RecordAccumulator

2.4 Sender分析
- 創建請求
- KSelector
- InFlightRequests
- MetadataUpdater
- NetworkClient

第3章消費者
3.1 KafkaConsumer 使用示例
3.2 傳遞保證語意( Delivery guarantee semantic )
3.3 Consumer Group Rebalance設計

3.4 KafkaConsumer 分析
- ConsumerNetworkC lient
- SubscriptionState
- ConsumerCoordinator.
- PartitionAssignor 分析
- Heartbeat 分析
- Rebalance 實作
- offset 操作
- Fetcher
- KafkaConsumer 分析總結

第4章Kafka服務端
4.1 網路層
- Reactor模式
- SocketServer
- AbstractServer Thread
- Acceptor
- Processor
- RequestChannel

4.2 API層
KafkaR equestHandler
KafkaApis

4.3 日志存盤
- 基本概念
- FileMessageSet
- ByteBufferMessageSet
- OfsetIndex
- LogSegment
- Log
- LogManager

4.4 DelayedOperationPurgatory 組件
- TimingWheel
- SystemTimer
- Delayed Dperation
- DelayedOperationPurgatory
- DelayedProduce
- DelayedFetch

4.5 副本機制
- 副本
- 磁區
- ReplicaManager

4.6 KafkaController
- ControllerChannelManager
- ControllerContext
- ControllerBrokerRequestBatch
- PartitionStateMachine
- PartitionLeaderSelector
- ReplicaStateMachine
- ZooKeeper Listener
- KafkaController 初始化與故障轉移
- 處理ContolledShutdownRequest

4.7 GroupCoordinator
- GroupMetadataManager
- GroupCoordinator分析

4.8 身份認證與權限控制
- 配置SASL/PLAIN認證
- 身份認證
- 權限控制

4.9 Kafka 監控
- JMX 簡介
- Metrics簡介
- Kafka中的Metrics
- Kafka的監控功能
- 監控KSelector的指標

第5章Kafka Tool
5.1 kafka-server-start 腳本
5.2 kafka-topics 腳本
- 創建Topic
- 修改Topic
5.3kafka-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.11kafka-mirror-maker腳本

總結
大型分布式系統猶如一個生命,系統中各個服務猶如骨骼,其中的資料猶如血液,而Kafka猶如經絡,串聯整個系統,這份Kafka原始碼筆記通過大量的設計圖展示、代碼分析、示例分享,把Kafka的實作脈絡展示在讀者面前,幫助讀者更好地研讀Kafka代碼,
需要免費領取這份Kafka原始碼筆記的鐵汁們,麻煩幫忙轉發一下這篇文章+關注我,然后添加小助理vx免費獲取!

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/168650.html
標籤:其他
