カフカとは何か Kafka はもともと Linkedin によって開発されました。これは、Zookeeper 調整に基づいた分散型、パーティション化、マルチレプリカ、マルチサブスクライバーの分散ログ システムです (MQ システムとしても使用できます)。これは、Web/nginx ログ、アクセス ログ、メッセージング サービスなどによく使用されます。Linkedin は 2010 年にこれを Apache Foundation に寄贈し、トップ オープン ソース プロジェクトになりました。 商用メッセージ キューのパフォーマンスとそのファイル ストレージ メカニズムの設計は、メッセージ キュー サービスの技術レベルを測定するための最も重要な指標の 1 つです。以下では、Kafka のファイル保存の仕組みと物理構造の観点から、Kafka がどのように効率的なファイル保存を実現するのか、また実際の適用効果について分析します。 Kafka の用語のいくつかは次のように説明されています。
分析プロセスは次の 4 つのステップに分かれています。
上記の 4 つのプロセスを詳細に分析することで、Kafka のファイル保存メカニズムの謎をはっきりと理解することができます。 2.1 トピックのパーティションストレージの分散 実験環境の Kafka クラスターにはブローカーが 1 つだけ存在し、xxx/message-folder がデータ ファイル ストレージのルート ディレクトリであると想定します。 Kafka ブローカーで、server.properties ファイル (パラメーター log.dirs=xxx/message-folder) を構成します。たとえば、report_push と launch_info という名前の 2 つのトピックを作成し、パーティションの数はパーティション = 4 です。保存パスとディレクトリのルールは次のとおりです: xxx/message-folder
Kafka ファイル ストレージでは、同じトピックの下に複数の異なるパーティションが存在します。各パーティションはディレクトリです。パーティションの命名規則は、トピック名 + 順序付けられたシーケンス番号です。最初のパーティションシーケンス番号は 0 から始まり、最大シーケンス番号はパーティション数から 1 を引いた数になります。ブローカーが複数ある場合は、Kafka クラスターのパーティション分散原則の分析を参照してください。 2.2 パーティション内のファイル保存方法 次の図は、パーティションにファイルがどのように保存されるかを示しています。
これを行う利点は、不要なファイルをすばやく削除し、ディスク使用率を効果的に向上できることです。 2.3 パーティション内のセグメントファイル格納構造 読者はセクション 2.2 で Kafka ファイル システムのパーティション ストレージ方法について学習しました。このセクションでは、パーティション内のセグメント ファイルの構成と物理構造を詳細に分析します。
以下のファイルリストは、Kafka ブローカーで行った実験です。 1 つのパーティションを持つ topicXXX を作成し、各セグメントのサイズを 500 MB に設定し、プロデューサーを起動して大量のデータを Kafka ブローカーに書き込みました。以下の図 2 に示すセグメント ファイル リストは、上記の 2 つのルールを示しています。 上記の図 2 のセグメント ファイルのペアを例にとると、セグメント内のインデックス <—-> データ ファイル間の対応関係の物理構造は次のようになります。 上記の図において、 3 、インデックス ファイルには大量のメタデータが格納され、データ ファイルには大量のメッセージが格納されます。インデックス ファイル内のメタデータは、対応するデータ ファイル内のメッセージの物理オフセット アドレスを指します。インデックス ファイル内のメタデータ 3,497 を例にとると、これはデータ ファイル内の 3 番目のメッセージ (グローバル パーティション内の 368772 番目のメッセージ) を表し、メッセージの物理オフセット アドレスは 497 です。 上の図 3 から、セグメント データ ファイルは多数のメッセージで構成されていることがわかります。メッセージの物理構造の詳細な説明は次のとおりです。 2.4 パーティション内のオフセットでメッセージを検索する方法 たとえば、offset=368776 のメッセージを読み取るには、次の 2 つの手順で検索する必要があります。
上の図 3 から、これを行う利点がわかります。セグメント インデックス ファイルはスパース インデックス ストレージを採用しており、インデックス ファイルのサイズが削減され、mmap を通じてメモリを直接操作できます。スパース インデックスは、データ ファイルの対応する各メッセージのメタデータ ポインターを設定します。高密度インデックスよりも多くのストレージスペースを節約できますが、検索に時間がかかります。 3 Kafkaのファイル保存の仕組み – 実際の運用効果 実験環境:
Kafka サーバーの構成と最適化の詳細については、kafka server.properties 構成の詳細を参照してください。 上記の図 5 からわかるように、Kafka の実行中に大規模なディスク読み取り操作が行われることはほとんどなく、主な操作はディスクへの定期的なバッチ書き込みであるため、ディスク操作は非常に効率的です。これは、Kafka ファイル ストレージでのメッセージの読み取りと書き込みの設計に密接に関連しています。 Kafka でのメッセージの読み取りと書き込みには、次の特徴があります。 メッセージを書く
メッセージを読む
Kafka の効率的なファイルストレージ設計機能
|
<<: キンディー・インターナショナル(00268)の年間成長率はハンセン指数の10倍であり、人気のあるQDIIファンドとなっている。
>>: 業界アプリケーションの革新とアップグレードのコアビジネスクラウド実装
テンセントテクノロジーニュース(楽天)11月28日のニュースによると、変動の激しいグループ購入業界は...
孫子は、「軍隊の配置方法は、散在地形、軽地形、争奪地形、交差地形、十字路地形、重要地形、荒廃地形、包...
先日、世界最高峰のコンピュータービジョンカンファレンスであるCVPR 2020が主要なチャレンジの結...
モバイルインターネットの普及により、オンライン旅行が本格的に形作られるようになりました。ユーザーの長...
直帰率は、ウェブサイトが訪問者に人気があるかどうかを示す重要な指標であり、検索エンジンによるウェブサ...
美容業界は電子商取引分野では比較的収益性の高い業界であり、非常に多くの電子商取引企業が出現しています...
みなさんこんにちは。私はみんなに愛され、花を咲かせるヤン・フェンショウです。今日はサイトクラスターと...
6月28日はすべてのウェブマスターにとって悪夢かもしれません。私も例外ではありません。今朝目覚めたと...
管理者は、データの使用状況を効果的に分析し、データをより経済的なディスクに手動で移行する必要がありま...
すべてのウェブマスターがウェブサイトの構築に一生懸命取り組んだ後、次に最も重要なことは、正確にターゲ...
最近、地元の求人サイトを運営している私の友人が、徐々に地域でナンバーワンの求人サイトになってきました...
最近、誰もが最も関心を持っている話題は、2012年のロンドンオリンピックです。検索エンジンのロゴも「...
ホスティング会社 sugarhost は 10 月のプロモーションを開始し、通常の仮想ホスティングと...
最新のプロモーションである cloudcone には、米国ロサンゼルスの MC データ センター、K...
10w+ とはどういう意味ですか?新しいメディア環境が成熟するにつれ、ヒット商品を生み出す手法も確立...