カフカ(1):はじめに

はじめに

  • Kafkaは分散ストリーミングプラットフォーム(メッセージシステム)です。

  • Kafkaは、ストリーム処理、Webサイトアクティビティの追跡、インデックスの収集と監視、ログの集計、リアルタイム分析、CEP、Sparkへのデータのインポート、Hadoopへのデータのインポート、CQRS、メッセージの再生、エラー回復、およびインメモリコンピューティングの分散送信の保証に使用されます(マイクロサービス)。

  • Kafkaは、リアルタイムのデータストリーム、ビッグデータの収集、またはリアルタイム分析(またはその両方)に使用されます。

  • Kafkaは、レコードのストリームのパブリッシュおよびサブスクライブに使用される分散ストリーミングプラットフォームです

    • Kafkaは、レコードストリームをパブリッシュおよびサブスクライブするための分散ストリーミングプラットフォームです。Kafkaを通じてメッセージレコードをパブリッシュまたは取得できます。

    • データのセキュリティを確保するためのバックアップメカニズム:Kafkaはフォールトトレラントストレージに使用されます(フォールトトレラントストレージの場合)--- Kafkaはトピックログパーティションを複数のサーバーに複製します(トピックログパーティションを複数のサーバーにコピーします)

    • 高スループット、低レイテンシのKafkaは、アプリがレコードを発生時に処理できるように設計されています(これにより、レコードをリアルタイムで操作できます)。

    • 効率的な永続性は安定性と速度を提供します:Kafkaは高速で、レコードをバッチ処理および圧縮することによりIOを効率的に使用します。IOを効果的に使用するためにレコードをバッチ処理および圧縮することにより。

    • Kafkaはデータストリームの分離に使用されます(Kafkaはデータストリームの分離に使用されます)

  • Kafkaは、データレイク、アプリケーション、およびリアルタイムストリーム分析システムにデータをストリーミングするために使用されます(データストリームをデータプール、アプリケーション、またはHadoopなどのリアルタイムデータ分析システムに送信できます)。

    • 高い並行性

  • ログデータやHadoopなどのオフライン分析システムではリアルタイム処理の制限が必要な場合、Kafkaは実行可能なソリューションです。Kafkaの目的は、並列ロードメカニズムを通じてオンラインとオフラインのメッセージ処理を統合し、クラスターマシンを通じてリアルタイムの消費を提供することです。

    Kafka官网:http://kafka.apache.org/

    ヘルプドキュメントページ:http : //kafka.apache.org/documentation.html

    wikiページ:https : //cwiki.apache.org/confluence/display/KAFKA/Index

カフカ構造

 

 

  1. ブローカー:Kafkaクラスターには1つ以上のサーバーが含まれ、これらのサーバーはブローカーと呼ばれます。

  2. トピック:Kafkaクラスターに投稿されたすべてのメッセージにはカテゴリがあり、このカテゴリはトピックと呼ばれます。(物理的には、異なるトピックのメッセージは別々に保存されます。論理的には、トピックのメッセージは1つ以上のブローカーに保存されますが、ユーザーはメッセージのトピックを指定するだけで、データの保存場所を気にすることなくデータを生成または消費できます)

  3. パーティション:トピックはパーティション(パーティション)であり、パーティションは物理的な概念です。各トピックには1つ以上のパーティションが含まれます。

  4. プロデューサー:メッセージプロデューサー。Kafkaブローカーへのメッセージのパブリッシュを担当します。

  5. コンシューマー:メッセージコンシューマー。Kafkaブローカーからメッセージを読み取るクライアント。

  6. コンシューマグループ:各コンシューマは特定のコンシューマグループに属しています(各コンシューマのグループ名を指定できます。グループ名を指定しない場合、デフォルトのグループに属します)。

トピック

  • 各トピックはメッセージのグループの要約であり、Kafkaは各トピックを分割します。

  • 各パーティションは、パーティションに連続的に追加される一連の不変のメッセージで構成されます。

  • パーティション内の各メッセージには、オフセットと呼ばれる連続したシーケンス番号があり、パーティション内のメッセージを一意に識別するために使用されます。

  • 構成可能な期間内に、Kafkaクラスターは、消費されたかどうかに関係なく、公開されたすべてのメッセージを保持します。

    • たとえば、メッセージ保持ポリシーが2日に設定されている場合、メッセージは投稿されてから2日以内に消費されます。その後、スペースを解放するために破棄されます。Kafkaのパフォーマンスは、データの量に関係なく一定レベルであるため、データが多すぎても問題はありません(十分なディスクがある限り)。

  • 各コンシューマが維持する必要がある唯一のデータは、ログ内のメッセージの位置(オフセット)です。この値をリセットすることにより、古いメッセージデータを読み取ることができます。

パーティション

  • 各パーティションは、Kafkaクラスター内のいくつかのサービスにコピーを持っているため、コピーを保持するこれらのサービスは、データと要求を共同で処理でき、コピーの数を構成できます。このコピーにより、Kafkaはフォールトトレラントになります。

  • 各パーティションには、「リーダー」として1つのサーバーがあり、「フォロワー」として0または複数のサーバーがあります。

    • リーダーはメッセージの読み書きを処理する責任があります

    • フォロワーはリーダーをコピーします

    • リーダーがダウンすると、フォロワーの1人が自動的にリーダーになります。

    • クラスター内の各サービスは、2つの役割を同時に果たします。つまり、それが保持するパーティションの一部のリーダーとして、および他のパーティションのフォロワーとして、クラスターの負荷バランスを改善します。

  • リーダーとフォロワーの管理はzkクラスターを通じて管理されます。

プロデューサー

  • プロデューサーは、Kafkaクラスターのメッセージプロデューサーを指します。プロデューサーは指定したトピックにメッセージをプッシュし、発行先のパーティションを決定します。

    • 通常、パーティションは負荷分散メカニズムによってランダムに選択されますが、特定のパーティション機能によって選択することもできます。一般的に言えば、現在、2番目の方法がより一般的に使用されています。

消費者

  • メッセージのプル(プル)には通常、キューイング(キューイング)とパブリッシュサブスクライブ(パブリッシュサブスクライブ)の2つのモードがあります。

  • キューモードでは、コンシューマはサーバーから同時にメッセージを読み取ることができ、各メッセージはコンシューマの1人だけが読み取ります。

  • パブリッシュ/サブスクライブモデルでは、メッセージはすべてのコンシューマにブロードキャストされます。

  • コンシューマーはコンシューマーグループに参加できます。各グループは1つのサーバーだけを持ち、メッセージをキャプチャできます。

  • すべてのコンシューマーが異なるグループに属していない場合、これはパブリッシュ/サブスクライブモデルになり、すべてのメッセージがすべてのコンシューマーに配信されます。

  • すべてのコンシューマが同じグループにある場合、それはキューモードです。

Flumeとの違い

 

おすすめ

転載: www.cnblogs.com/renzhongpei/p/12749032.html