Kafka2.0サーバーの書き込みや読み出し処理

書き込み処理

  端によってカフカサービスKafkaApishandle()要求を処理統一する方法は、ApiKeysこと列挙handle()要求処理方法の種類、及びその場合PRODUCE種類、クライアントがメッセージを送信し、コピー管理処理にメッセージを渡すプロデューサを発現しました。

  マネージャーのコピーは、パーティションのコピーのログファイルのリーダーにメッセージを追加しかし、実際には直接ディスクに書き込まれていない、セグメントセグメントカフカはログキャッシュテーブルにジャンプしますConcurrentSkipListMapログに書き込まれたときに、最初のセグメントがキャッシュから見える、見つかった場合は、レコードに追加段落で、レコードがログファイル、インデックスファイル、ファイルのタイムスタンプが含まれています。ログファイルが書き込まれFileChannel、インデックスファイルとタイムスタンプのファイルが書き込まれますMappedByteBufferで。最後に、バックグラウンドスケジューラは、定期的にディスクに永続的なセグメントファイルを更新します。

  セグメントキャッシュはを通じて、適し見つからない場合はFileChannel、新しいセグメントを開くと、セグメントマッピングはディスクファイルを返し、パッケージングセグメントは、その後、次回の使用のためにキャッシュテーブルに追加のログをジャンプしています。

処理フローログを書きます

ログプロセスに書き込ま

インデックスとオフセット処理の流れを書きます

インデックスとオフセットのプロセスを書きます

読み込みプロセス

  要求がある場合はFETCH、クライアントを引っ張って消費者を代表するタイプは、要求を送信し、同様に、それはレプリカマネージャのプロセスに要求を渡します。

  レプリカマネージャログへの書き込み、キャッシュへのジャンプテーブルのセクションが、読み出した、ジャンプがセグメント・テーブルから直接得ることができる、セグメントに読み出し動作を開始します。まず、バイナリサーチアルゴリズムを見つけるためにmmapインデックスファイルを、インデックスファイルには、ログ記録に応じて検索網羅オフセットFileChannel位置をここでログ・ファイル、および最後に、リターンを引くために必要なログ・オフセットに従ってセグメントとサイズを取得します消費者に。

プロセスフローの読書ログ

ログプロセスを読み込み

おすすめ

転載: www.cnblogs.com/bigshark/p/11210876.html