期間限定!アリババの内部爆発アーキテクトは、カフカのソースコードノートをオープンソースでトレーニングしています。権限は自明です。

ビッグデータと高い同時実行性を備えたシステムでは、ボトルネックを打破するために、システムが水平方向に拡張され、垂直方向に分割されて、独立したサービスが形成されます。それぞれの独立したサービスの背後に、外部サービスを提供するクラスターが存在する場合があります。これにより問題が発生します。システム全体が複数のサービス(サブシステム)で構成されており、データは各サービスで継続的に流れる必要があります。さまざまなサブシステムでデータの送信が遅すぎると、ボトルネックが形成され、システム全体のパフォーマンスが低下します。このようにして、カフカ中心のソリューションが形成されました!

Kafkaソースコードを読むことの重要性は自明であるため、本日、Pinduoduo Kafkaソースコードノートを共有します。これは現在、完全に公開されています。すべての人の読書体験に影響を与えないように、記事の最後に無料アクセスがあります!

今回だけ! Pinduoduo内部アーキテクトトレーニングKafkaソースコードノート(現在は印刷されていません)

 

このノートは、Kafkaのアプリケーションシナリオとソース環境から始まり、Kafkaのコアコンセプトを紹介するだけでなく、Kafkaのプロデューサー、コンシューマー、サーバーのソースコードの詳細な分析も行います。最後に、Kafkaで一般的に使用される管理スクリプトの実装を紹介します。 、読者がマクロデザインからカフカを理解するだけでなく、カフカの詳細なデザインも深く理解できるように。ソースコード分析の過程で、作者の仕事で蓄積された経験とカフカのデザインへの理解も散りばめられており、読者が真実を知るだけでなく、その理由を知ることで、お互いから推論を引き出すことができることを願っています。

第1章クイックスタート

1.1カフカの紹介

1.2カフカ中心のソリューション

1.3カフカのコアコンセプト

1.4カフカソース環境

今回だけ! Pinduoduo内部アーキテクトトレーニングKafkaソースコードノート(現在は印刷されていません)

 

第2章プロデューサー

2.1KafkaProducerの使用例

2.2KafkaProducer分析

  • ProducerInterceptors&cProducerInterceptor
  • Kafkaクラスターメタデータ
  • Serializer&Deserializer
  • パーティショナー

今回だけ! Pinduoduo内部アーキテクトトレーニングKafkaソースコードノート(現在は印刷されていません)

 

2.3RecordAccumulator分析

  • MemoryR ecords
  • RecordBatch
  • BufferPool
  • RecordAccumulator

今回だけ! Pinduoduo内部アーキテクトトレーニングKafkaソースコードノート(現在は印刷されていません)

 

2.4送信者分析

  • リクエストを作成
  • KSelector
  • InFlightRequests
  • MetadataUpdater
  • NetworkClient

今回だけ! Pinduoduo内部アーキテクトトレーニングKafkaソースコードノート(現在は印刷されていません)

 

第3章消費者

3.1KafkaConsumerの使用例

3.2配信保証のセマンティクス

3.3消費者グループのリバランス設計

今回だけ! Pinduoduo内部アーキテクトトレーニングKafkaソースコードノート(現在は印刷されていません)

 

3.4KafkaConsumer分析

  • ConsumerNetworkCリンク
  • SubscriptionState
  • ConsumerCoordinator。
  • PartitionAssignor分析
  • 心拍分析
  • リバランスの実装
  • オフセット操作
  • フェッチャー
  • KafkaConsumer分析の概要

今回だけ! Pinduoduo内部アーキテクトトレーニングKafkaソースコードノート(現在は印刷されていません)

 

第4章Kafkaサーバー

4.1ネットワーク層

  • リアクターモード
  • SocketServer
  • AbstractServerスレッド
  • アクセプター
  • プロセッサー
  • RequestChannel

今回だけ! Pinduoduo内部アーキテクトトレーニングKafkaソースコードノート(現在は印刷されていません)

 

4.2 API层

KafkaR equestHandler

KafkaApis

今回だけ! Pinduoduo内部アーキテクトトレーニングKafkaソースコードノート(現在は印刷されていません)

 

4.3ログストレージ

  • 基本概念
  • FileMessageSet
  • ByteBufferMessageSet
  • オフセットインデックス
  • LogSegment
  • ログ
  • LogManager

今回だけ! Pinduoduo内部アーキテクトトレーニングKafkaソースコードノート(現在は印刷されていません)

 

4.4DelayedOperationPurgatoryコンポーネント

  • TimingWheel
  • SystemTimer
  • 遅延Dperation
  • DelayedOperationPurgatory
  • DelayedProduce
  • DelayedFetch

今回だけ! Pinduoduo内部アーキテクトトレーニングKafkaソースコードノート(現在は印刷されていません)

 

4.5コピーメカニズム

  • コピー
  • パーティション
  • ReplicaManager

今回だけ! Pinduoduo内部アーキテクトトレーニングKafkaソースコードノート(現在は印刷されていません)

 

4.6 KafkaController

  • ControllerChannelManager
  • ControllerContext
  • ControllerBrokerRequestBatch
  • PartitionStateMachine
  • PartitionLeaderSelector
  • ReplicaStateMachine
  • ZooKeeperリスナー
  • KafkaControllerの初期化とフェイルオーバー
  • ContolledShutdownRequestの処理

今回だけ! Pinduoduo内部アーキテクトトレーニングKafkaソースコードノート(現在は印刷されていません)

 

4.7グループコーディネーター

  • GroupMetadataManager
  • GroupCoordinator分析

今回だけ! Pinduoduo内部アーキテクトトレーニングKafkaソースコードノート(現在は印刷されていません)

 

4.8ID認証と権限制御

  • SASL / PLAIN認証を構成します
  • 認証
  • アクセス制御

今回だけ! Pinduoduo内部アーキテクトトレーニングKafkaソースコードノート(現在は印刷されていません)

 

4.9カフカモニタリング

  • JMXの紹介
  • メトリクスの概要
  • カフカのメトリクス
  • カフカの監視機能
  • KSelectorのメトリックを監視する

今回だけ! Pinduoduo内部アーキテクトトレーニングKafkaソースコードノート(現在は印刷されていません)

 

第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脚本

今回だけ! Pinduoduo内部アーキテクトトレーニングKafkaソースコードノート(現在は印刷されていません)

 

5.7 kafka-consumer-groups脚本

5.8 DumpLogSegments

5.9kafka-producer-perf-testスクリプト

5.10 kafka-consumer-perf-test脚本

5.11kafka-ミラーメーカー脚本

今回だけ! Pinduoduo内部アーキテクトトレーニングKafkaソースコードノート(現在は印刷されていません)

 

総括する

大規模な分散システムは生命のようなものであり、システム内の各サービスはスケルトンのようなものであり、その中のデータは血のようなものであり、Kafkaはシステム全体を接続する子午線のようなものです。このKafkaソースコードノートは、多数の設計図、コード分析、およびサンプル共有を通じて読者にKafkaの実装を示し、読者がKafkaコードをよりよく研究するのに役立ちます。

このKafkaソースノートを無料で受け取る必要がある場合は、この記事の転送を手伝って+私をフォローしてから、アシスタントvxを追加して無料で入手してください。

おすすめ

転載: blog.csdn.net/weixin_50205273/article/details/108981508