ビッグデータと高い同時実行性を備えたシステムでは、ボトルネックを打破するために、システムが水平方向に拡張され、垂直方向に分割されて、独立したサービスが形成されます。それぞれの独立したサービスの背後に、外部サービスを提供するクラスターが存在する場合があります。これにより問題が発生します。システム全体が複数のサービス(サブシステム)で構成されており、データは各サービスで継続的に流れる必要があります。さまざまなサブシステムでデータの送信が遅すぎると、ボトルネックが形成され、システム全体のパフォーマンスが低下します。このようにして、カフカ中心のソリューションが形成されました!
Kafkaソースコードを読むことの重要性は自明であるため、本日、Pinduoduo Kafkaソースコードノートを共有します。これは現在、完全に公開されています。(すべての人の読書体験に影響を与えないように、記事の最後に無料アクセスがあります!)
このノートは、Kafkaのアプリケーションシナリオとソース環境から始まり、Kafkaのコアコンセプトを紹介するだけでなく、Kafkaのプロデューサー、コンシューマー、サーバーのソースコードの詳細な分析も行います。最後に、Kafkaで一般的に使用される管理スクリプトの実装を紹介します。 、読者がマクロデザインからカフカを理解するだけでなく、カフカの詳細なデザインも深く理解できるように。ソースコード分析の過程で、作者の仕事で蓄積された経験とカフカのデザインへの理解も散りばめられており、読者が真実を知るだけでなく、その理由を知ることで、お互いから推論を引き出すことができることを願っています。
第1章クイックスタート
1.1カフカの紹介
1.2カフカ中心のソリューション
1.3カフカのコアコンセプト
1.4カフカソース環境
第2章プロデューサー
2.1KafkaProducerの使用例
2.2KafkaProducer分析
- ProducerInterceptors&cProducerInterceptor
- Kafkaクラスターメタデータ
- Serializer&Deserializer
- パーティショナー
2.3RecordAccumulator分析
- MemoryR ecords
- RecordBatch
- BufferPool
- RecordAccumulator
2.4送信者分析
- リクエストを作成
- KSelector
- InFlightRequests
- MetadataUpdater
- NetworkClient
第3章消費者
3.1KafkaConsumerの使用例
3.2配信保証のセマンティクス
3.3消費者グループのリバランス設計
3.4KafkaConsumer分析
- ConsumerNetworkCリンク
- SubscriptionState
- ConsumerCoordinator。
- PartitionAssignor分析
- 心拍分析
- リバランスの実装
- オフセット操作
- フェッチャー
- KafkaConsumer分析の概要
第4章Kafkaサーバー
4.1ネットワーク層
- リアクターモード
- SocketServer
- AbstractServerスレッド
- アクセプター
- プロセッサー
- RequestChannel
4.2 API层
KafkaR equestHandler
KafkaApis
4.3ログストレージ
- 基本概念
- FileMessageSet
- ByteBufferMessageSet
- オフセットインデックス
- LogSegment
- ログ
- LogManager
4.4DelayedOperationPurgatoryコンポーネント
- TimingWheel
- SystemTimer
- 遅延Dperation
- DelayedOperationPurgatory
- DelayedProduce
- DelayedFetch
4.5コピーメカニズム
- コピー
- パーティション
- ReplicaManager
4.6 KafkaController
- ControllerChannelManager
- ControllerContext
- ControllerBrokerRequestBatch
- PartitionStateMachine
- PartitionLeaderSelector
- ReplicaStateMachine
- ZooKeeperリスナー
- KafkaControllerの初期化とフェイルオーバー
- ContolledShutdownRequestの処理
4.7グループコーディネーター
- GroupMetadataManager
- GroupCoordinator分析
4.8ID認証と権限制御
- SASL / PLAIN認証を構成します
- 認証
- アクセス制御
4.9カフカモニタリング
- JMXの紹介
- メトリクスの概要
- カフカのメトリクス
- カフカの監視機能
- KSelectorのメトリックを監視する
第5章Kafka Tool
5.1 kafka-server-start 脚本
5.2kafka-トピックスクリプト
- トピックを作成する
- トピックの変更
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.9kafka-producer-perf-testスクリプト
5.10 kafka-consumer-perf-test脚本
5.11kafka-ミラーメーカー脚本
総括する
大規模な分散システムは生命のようなものであり、システム内の各サービスはスケルトンのようなものであり、その中のデータは血のようなものであり、Kafkaはシステム全体を接続する子午線のようなものです。このKafkaソースコードノートは、多数の設計図、コード分析、およびサンプル共有を通じて読者にKafkaの実装を示し、読者がKafkaコードをよりよく研究するのに役立ちます。
このKafkaソースノートを無料で受け取る必要がある場合は、この記事の転送を手伝って+私をフォローしてから、アシスタントvxを追加して無料で入手してください。