検索
ホームページよくある問題カフカの特徴は何ですか?

カフカの特徴は何ですか?

Jun 29, 2020 am 11:40 AM
kafka

Kafka の特徴は: 1. パブリッシュとサブスクリプションの両方で高いスループットを提供する; 2. 永続化操作を実行し、メッセージをディスクに永続化できるため、バッチ消費に使用できる; 3. 分散システム、簡単外側に拡張する; 4. オンラインおよびオフラインのシナリオをサポートします。

カフカの特徴は何ですか?

Kafka の特性と使用シナリオ

Kafka は、分散型パブリッシュ/サブスクライブ メッセージング システムです。これは元々 LinkedIn Corporation によって開発され、後に Apache プロジェクトの一部になりました。 Kafka は、分散型、パーティション化可能な、冗長性のある永続的なログ サービスです。

主にアクティブなストリーミング データを処理するために使用されます。ビッグデータシステムでは、ビッグデータ全体がさまざまなサブシステムで構成されており、各サブシステム内でデータが高性能かつ低遅延で継続的に循環する必要があるという問題がよく発生します。

従来のエンタープライズ メッセージング システムは、大規模なデータ処理にはあまり適していません。オンラインアプリケーション(メッセージ)とオフラインアプリケーション(データファイル、ログ)を同時に扱うために、Kafkaが登場しました。 Kafka は 2 つの役割を果たすことができます:

  • システム ネットワーキングの複雑さを軽減します。

  • プログラミングの複雑さを軽減します。各サブシステムは相互にインターフェイスをネゴシエートしなくなりました。各サブシステムはソケットのようにソケットに接続されます。Kafka は高速データ バスの役割を引き受けます

Kafka の主な機能:

  • パブリッシュとサブスクリプションの両方で高いスループットを提供します。 Kafka は 1 秒あたり約 250,000 メッセージ (50 MB) を生成し、1 秒あたり 550,000 メッセージ (110 MB) を処理できることがわかります。

  • 永続化操作を実行できます。メッセージをディスクに永続化して、ETL などのバッチ消費やリアルタイム アプリケーションに使用できるようにします。データをハードディスクに保存してレプリケーションすることで、データ損失を防ぎます。

  • 分散システム、外部への拡張が容易。すべての生産者、仲介者、消費者が複数を持ち、それらはすべて分散されます。マシンはダウンタイムなしで拡張できます。

  • メッセージ処理のステータスは、サーバー側ではなくコンシューマ側で維持されます。障害発生時に自動的にバランスを調整します。

  • オンラインとオフラインのシナリオをサポートします。

Kafka の設計ポイント:

1. Linux ファイル システムのキャッシュを直接使用して、データを効率的にキャッシュします。

2. Linux Zero-Copy を使用して、送信パフォーマンスを向上させます。従来のデータ送信では 4 回のコンテキストスイッチが必要でしたが、sendfile システムコールを使用するとカーネル状態で直接データ交換が行われるため、システムコンテキストスイッチが 2 回に削減されます。テスト結果によると、データ送信パフォーマンスが 60% 向上する可能性があります。

3. ディスク上のデータ アクセスのコストは O(1) です。 Kafka はメッセージ管理にトピックを使用します。各トピックには複数の部分 (エディション) が含まれます。各部分は論理ログに対応し、複数のセグメントで構成されます。複数のメッセージが各セグメントに保存されます (下図を参照)。メッセージ ID は論理的な場所によって決定されます。つまり、メッセージ ID はメッセージの保存場所に直接配置され、ID から場所への追加のマッピングを回避できます。各部分はメモリ内のインデックスに対応し、各セグメントの最初のメッセージのオフセットが記録されます。パブリッシャーによって特定のトピックに送信されたメッセージは、複数のパートに均等に分散されます (ランダムに、またはユーザーが指定したコールバック関数に従って分散されます)。ブローカーはパブリッシュされたメッセージを受信し、対応するパートの最後のセグメントにメッセージを追加します。セグメント上のメッセージの数が構成された値に達するか、メッセージの公開時間がしきい値を超えると、セグメント上のメッセージはディスクにフラッシュされます。ディスクにフラッシュされたメッセージ サブスクライバのみがセグメントをサブスクライブできます。セグメントの後で特定のサイズに達すると、そのセグメントは使用できなくなり、データが再びセグメントに書き込まれ、ブローカーによって新しいセグメントが作成されます。

4. 明示的な配布、つまり、複数のプロデューサー、ブローカー、コンシューマーが存在し、それらはすべて分散されます。プロデューサーとブローカーの間には負荷分散メカニズムはありません。 Zookeeper は、ブローカーとコンシューマー間の負荷分散に使用されます。

すべてのブローカーとコンシューマは Zookeeper に登録され、Zookeeper はメタデータ情報の一部を保存します。ブローカーまたはコンシューマーが変更されると、他のすべてのブローカーおよびコンシューマーに通知されます。

以上がカフカの特徴は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター