Kafka の効率的なストレージ設計をコミックで解説

Kafka の効率的なストレージ設計をコミックで解説
[[347741]]

始める前に、Kafka の概念をいくつか思い出させてください。

a.ブローカー: データ ストレージとデータの読み取りおよび書き込みサービス インスタンスを提供します。 Kafka ノードはブローカーであり、複数のブローカーが Kafka クラスターを形成できます。

b.トピック: アプリケーション ログのトピック、アプリケーション ヘルス モニタリング インジケーターのトピックなど、メッセージの種類を表します。

紀元前パーティション: トピックの物理的なグループ化。トピックは複数のパーティションに分割できます。

d.セグメント: パーティションは物理的に複数のセグメントで構成され、各セグメントはファイルです。

e.オフセット: 各パーティションは、パーティションに継続的に追加される一連の順序付けられた不変のメッセージで構成されます。パーティション内の各メッセージには、オフセットと呼ばれる連続したシーケンス番号があり、これを使用してパーティション内のメッセージを一意に識別します。

以下は、Kafka データ ディレクトリ内の 2 つのトピック (page_view、ページ閲覧トラフィック ログ、click_log) のパーティション ストレージ状況です。

  1. | --ページビュー-0  
  2. | --ページビュー-1  
  3. | --ページビュー-2  
  4. | --ページビュー-3  
  5. | --クリックログ-0  
  6. | --クリックログ-1  
  7. | --クリックログ-2  
  8. | --クリックログ-3  

次の図は、ファイルがどのように保存されるかを示しています。

  • 各パーティション (ディレクトリ) は、同じサイズの複数のセグメント データ ファイルに均等に分割された巨大なファイルに相当します。ただし、各セグメント ファイル内のメッセージの数は必ずしも同じではありません。この機能を使用すると、古いセグメント ファイルをすばやく簡単に削除できます。
  • 各パーティションは順次読み取りと書き込みのみをサポートする必要があり、セグメント ファイルのライフ サイクルはサーバー構成パラメータによって決まります。

これを行う利点は、不要なファイルをすばやく削除し、ディスク使用率を効果的に向上できることです。

パーティション内のセグメント ファイルの構成と物理構造は次のとおりです。

  • セグメント ファイルの構成: インデックス ファイルとデータ ファイルの 2 つの部分で構成されます。これら 2 つのファイルは互いに対応しており、ペアで表示されます。サフィックス「.index」と「.log」は、それぞれセグメント インデックス ファイルとデータ ファイルを表します。
  • セグメント ファイルの命名規則: グローバル パーティションの最初のセグメントは 0 から始まり、後続の各セグメント ファイルは、前のセグメント ファイルの最後のメッセージのオフセット値に基づいて名前が付けられます。最大値は 64 ビット長、19 桁で、埋められていない桁には 0 が埋め込まれます。

1 つのパーティションを持つ topicXXX を作成し、各セグメントのサイズを 500 MB に設定し、プロデューサーを起動して大量のデータを Kafka ブローカーに書き込みます。パーティション ファイルの内容は次のとおりです。

図1

いくつかのインデックス ファイルとログ ファイル間の対応を示す詳細な図もあります。

図2

インデックス ファイルには大量のメタデータが保存され、データ ファイルには大量のメッセージが保存されます。インデックス ファイル内のメタデータは、対応するデータ ファイル内のメッセージの物理オフセット アドレスを指します。インデックス ファイル内のメタデータ 3,497 を例にとると、これはデータ ファイル内の 3 番目のメッセージ (グローバル パーティション内の 368772 番目のメッセージ) を表し、メッセージの物理オフセット アドレスは 497 です。

たとえば、offset=368776 のメッセージを読み取るには、次の 2 つの手順で検索する必要があります。

最初のステップは、セグメント ファイルを見つけることです。図 1 を例にとると、00000000000000000000.index は最初のファイルを表し、開始オフセットは 0 です。2 番目のファイル 000000000000000368769.index の開始オフセットは 368770 = 368769 + 1 です。同様に、3 番目のファイル 000000000000000737337.index の開始オフセットは 737338 = 737337 + 1 であり、後続のファイルについても同様です。これらのファイルは開始オフセットによって名前が付けられ、並べ替えられます。ファイルリストをオフセットに従ってバイナリ検索する限り、特定のファイルをすばやく見つけることができます。オフセット=368776の場合、00000000000000368769.index|logに移動します。

2 番目のステップ (図 2) は、セグメント ファイルを通じてメッセージを検索することです。セグメント ファイルは最初のステップで見つかります。 offset = 368776 の場合、000000000000000368769.index のメタデータの物理的な場所と 000000000000000368769.log の物理オフセット アドレスが順番に配置されます。次に、オフセット = 368776 になるまで、00000000000000368769.log が順番に検索されます。

これを行う利点は明らかです。セグメント インデックス ファイルはスパース インデックス ストレージを採用しており、インデックス ファイルのサイズが削減され、mmap を介してメモリ上で直接操作できます。スパース インデックスは、データ ファイル内の対応する各メッセージのメタデータ ポインターを設定します。高密度インデックスよりも多くのストレージスペースを節約できますが、検索に時間がかかります。

[[347742]]

この記事はWeChatの公開アカウント「朗江ビッグデータ雑談」から転載したものです。下のQRコードからフォローできます。この記事を転載する場合は、朗江チャットビッグデータ公式アカウントまでご連絡ください。

<<:  VMwareインフラストラクチャ上でNvidia vGPUを実行できるようになりました

>>:  クラウド コンピューティング チームの IT 後継者計画を作成する方法

推薦する

精密マーケティング + 革新的なオペレーション Pactera が不動産業界の流行打破を支援

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービス新たな10年の岐路に立つ...

ライブストリーミングeコマースは「1ムーあたり1万キロ」の時代に突入したのか?

「国民が大胆になればなるほど、土地の生産性は高まる」。この言葉は、インターネット時代の電子商取引ライ...

LeEco Holdingsからの投資によりワインB2Cオンラインワインウェブサイトが開設

12月3日午前のニュース、LeTV Holdingsが投資したワインB2CプラットフォームWangj...

韓国専用サーバー: ZjiNet、20% オフ、500 元、2*e5-2620/32g メモリ/480gSSD/10M 帯域幅 (CN2+BGP)

zji.net は現在、韓国のソウル データ センターにある韓国のサーバー (韓国の独立サーバー、韓...

ユーザーの熱意が薄れた後、ソーシャル ネットワーキング サイトはどこへ向かうのでしょうか?

MySpaceに何が起こったのですか?まずは、Google Correlateが提供するFacebo...

2023 年のクラウド コンピューティング、サービスとしてのサービス、コスト最適化の予測

今日の不確実な経済状況を考えると、2023 年は企業の IT とコストに関する時代遅れの考え方に終止...

3つのアルゴリズムによる外部リンクの重要性の簡単な分析

Fuqing SEO は検索エンジンのアルゴリズムについて詳細な調査を実施したことはありませんし、詳...

#BlackFive# akkocloud: (3つのネットワーク) 英国 cn2 gia vps、月額33元から、評価資料付き

Akkocloud は今年のブラックフライデーに UK VPS (UK cn2 gia vps) の...

ビデオネットワーク 2011 ドメイン名のハイライト: 情報の変更 トウモロコシ

先週、Tudou、Sohu Video、LeTVが共同で技術的措置を取り、Youkuの検索エンジンを...

ライブ e コマース: 口紅が 5,000 億ドル規模の市場を活用すると...

ライブストリーミングプラットフォームが次々と崩壊しているにもかかわらず、ライブストリーミングeコマー...

クラウド コンピューティング サービス プロバイダーは、どのような無料サービスを段階的に提供していくのでしょうか?

世界があらゆる面でコロナウイルス危機に取り組んでいる中、世界中のクラウド コンピューティング サービ...

長期 SEO 戦略の完全ガイド - 検索エンジンの観点から SEO を見る

業界に入るときの疑問業界に初めて参入する場合、キーワード密度、外部リンクなど、SEO に関する非常に...

WeChatの思考: 思考は事例から生まれる

少し前に、WeChatは正式に「WeChat思考」というタイトルの本をリリースし、WeChatを通じ...

Zuzuche: あるいは、垂直検索の次の「プラットフォーム」の機会

左が李建成、右が李斌。 「垂直検索」というと、まず思い浮かぶのは、Yitao、Yiqisou、Woc...