Kafka の 3 階層アーキテクチャ設計の分析

Kafka の 3 階層アーキテクチャ設計の分析

Kafka コアの問題

  • Kafka のアーキテクチャを簡単に説明してください。
  • Kafka はプッシュ モードですか、それともプル モードですか?プッシュとプルの違いは何ですか?
  • Kafka はどのようにメッセージをブロードキャストしますか?
  • Kafka メッセージは順番通りですか?
  • Kafka は読み取りと書き込みの分離をサポートしていますか?
  • Kafka はどのようにして高いデータ可用性を確保するのでしょうか?
  • Kafka における zookeeper の役割は何ですか?
  • トランザクションはサポートされていますか?
  • パーティションの数を減らすことはできますか?

Kafka アーキテクチャの一般的な概念:

建築

  • プロデューサー: プロデューサーはメッセージを送信する当事者です。プロデューサーはメッセージを作成し、それを Kafka に送信する責任を負います。
  • 消費者: 消費者はメッセージを受信する当事者です。コンシューマーは Kafka に接続してメッセージを受信し、対応するビジネス ロジック処理を実行します。
  • コンシューマー グループ: コンシューマー グループには 1 人以上のコンシューマーを含めることができます。マルチパーティション + マルチコンシューマー モードを使用すると、ダウンストリーム データの処理速度が大幅に向上します。同じコンシューマー グループ内のコンシューマーは、メッセージを繰り返し消費しません。同様に、異なるコンシューマー グループのコンシューマーは、メッセージを送信するときに互いに影響を与えません。 Kafka は、コンシューマー グループを通じてメッセージ P2P モードとブロードキャスト モードを実装します。
  • ブローカー: サービス プロキシ ノード。 Broker は Kafka のサービス ノード、つまり Kafka のサーバーです。
  • トピック: Kafka 内のメッセージはトピックに分割されます。プロデューサーは特定のトピックにメッセージを送信し、コンシューマーはトピックからのメッセージをサブスクライブして消費する責任を負います。
  • パーティション: トピックは、複数のパーティションに分割できる論理的な概念です。各パーティションは単一のトピックに属します。同じトピックの下にある異なるパーティションに含まれるメッセージは異なります。パーティションは、ストレージ レベルで追加可能なログ ファイルと見なすことができます。メッセージがパーティション ログ ファイルに追加されると、特定のオフセットが割り当てられます。
  • オフセット: オフセットは、パーティション内のメッセージの一意の識別子です。 Kafka はこれを使用して、パーティション内のメッセージの順序を確保します。ただし、オフセットはパーティションにまたがりません。つまり、Kafka はトピックの順序ではなくパーティションの順序を保証します。
  • レプリケーション: レプリケーションは、Kafka がデータの高可用性を保証する方法です。 Kafka の同じパーティションのデータは、複数のブローカー上に複数のコピーとして存在できます。通常、プライマリ コピーのみが外部に対して読み取りおよび書き込みサービスを提供します。プライマリ コピーが配置されているブローカーがクラッシュしたり、ネットワーク障害が発生したりした場合、Kafka はコントローラーの管理下にある新しいリーダー コピーを再選択して、外部に読み取りおよび書き込みサービスを提供します。
  • レコード: 実際に Kafka に書き込まれ、読み取ることができるメッセージ レコード。各レコードにはキー、値、タイムスタンプが含まれます。

Kafka トピック パーティション レイアウト

テーマ

Kafka はトピックをパーティション化し、パーティションを同時に読み取りおよび書き込みできます。

Kafka コンシューマーオフセット

消費者オフセット

動物園の飼育員

飼育係

  • ブローカー登録: ブローカーは分散して展開され、互いに独立しています。 Zookeeper は、クラスターに登録されているすべてのブローカー ノードを管理するために使用されます。
  • トピック登録: Kafka では、同じトピックのメッセージは複数のパーティションに分割され、複数のブローカーに分散されます。これらのパーティション情報とブローカーとの対応する関係も Zookeeper によって管理されます。
  • プロデューサーの負荷分散: 同じトピック メッセージは複数のブローカーに分割されて分散されるため、プロデューサーはこれらの分散ブローカーにメッセージを合理的に送信する必要があります。
  • コンシューマーの負荷分散: プロデューサーと同様に、Kafka のコンシューマーも、複数のコンシューマーが対応するブローカー サーバーからメッセージを適切に受信できるように、負荷分散する必要があります。各コンシューマー グループには複数のコンシューマーが含まれており、各メッセージはグループ内の 1 つのコンシューマーにのみ送信されます。さまざまなコンシューマー グループは、互いに干渉することなく、独自の特定のトピックでメッセージを消費します。

答え

Kafka のアーキテクチャを簡単に説明してください。

プロデューサー、コンシューマー、コンシューマー グループ、トピック、パーティション。

Kafka はプッシュ モードですか、それともプル モードですか?プッシュとプルの違いは何ですか?

Kafka プロデューサーはプッシュ モードを使用してブローカーにメッセージを送信し、コンシューマーはプル モードを使用してメッセージを消費します。プル モードでは、コンシューマーがオフセットを自分で管理できるため、読み取りパフォーマンスが向上します。

Kafka はどのようにメッセージをブロードキャストしますか?

消費者グループ。

Kafka メッセージは順番通りですか?

トピック レベルは順序付けられていませんが、パーティション レベルは順序付けられています。

Kafka は読み取りと書き込みの分離をサポートしていますか?

サポートされていません。リーダーのみが外部への読み取りおよび書き込みサービスを提供します。

Kafka はどのようにして高いデータ可用性を確保するのでしょうか?

レプリカ、ack、HW。

Kafka における zookeeper の役割は何ですか?

クラスター管理、メタデータ管理。

トランザクションはサポートされていますか?

トランザクションは 0.11 以降でサポートされ、「正確に 1 回」を実現できます。

パーティションの数を減らすことはできますか?

いいえ、データは失われます。

<<:  「オルタナティブクラウド」移行戦略 | 3種類のクラウド移行パス、複数当事者のコラボレーション

>>:  今すぐ実装すべき DevOps パイプラインのベストプラクティス 10 選

推薦する

Googleが2014年の年間検索ランキングを発表

Googleは、2014年に人々が最も関心を寄せた話題の出来事や社会動向をデータの観点から紹介する「...

628 Baidu Black K Station 嵐についての考察

6月28日は暗黒の日でした。多くのウェブサイトがBaiduに削除され、ホームページだけが残ったり、何...

次の有名ブロガーになりたいなら、まだ長い道のりが残っています。

インターネットはまさに奇跡の場所です。経歴やコネの有無に関わらず、スキルと粘り強さがあれば、あらゆる...

商品、チャネル、ショッピングガイドのブランドとの関係は何ですか?

すべての顧客は、購入プロセス中に、「何を購入するか」、「どこで購入するか」、「どのように選択するか」...

ウェブサイトタイムマシン: CodeGuard は無料のウェブサイトバックアップ サービスを提供しています

CodeGuard は、すべてのウェブマスターが自分のウェブサイトをバックアップおよび復元できる無料...

4日間で新しいサイトを完璧に組み込むためのヒント

もともと、これらは私が自分で発見してまとめた小技であり、私も達人から学んで秘密にしておきたいと思って...

ウェブサイトの掲載に影響する要因

なぜ私のサイトは掲載されないのでしょうか? Baidu が私のサイトを掲載するのはなぜこんなに難しい...

あなたのウェブサイトは訪問者を必要としていますか、それとも訪問者があなたのウェブサイトを必要としていますか?

ウェブマスターとして、ウェブサイトをリーダーに、訪問者を従業員に例えることもできます。では、誰が誰を...

Baidu の入札キーワードを段階的にスクリーニングする

SEM業界では「入札プロモーションをすることは死を求めることであり、入札プロモーションをしないことは...

アリババクラウドがクラウドコンピュータ「Shadowless」をリリース:クラウドで成長する「スーパーコンピュータ」

登場から40年近く経ったパーソナルコンピュータは、大きな進化を遂げてきました。 9月17日、2020...

草の根ブログの運営方法: 手で「タップ」する

葉建輝氏は以前からインターネット上で活動しており、今年7月1日に自身のインターネットブログ「Huiz...

インターネットの陰の英雄、アカマイ

Akamai といえば、初めてこの名前を聞いたという人も多いかもしれません。私は何年も前に360でC...

ウェブサイトの最適化にはどのようなトラフィックが必要ですか?

どのようなトラフィックが必要ですか?オンラインマーケティングを行うほとんどの人の目的は非常にシンプル...