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 選

推薦する

万旺がアリババクラウドに合併:時代遅れのモデルと打ち砕かれた上場の夢

アリババグループは本日、傘下のアリババクラウドとHiChinaが合併して新しいアリババクラウド会社を...

イノベーションに関する対話 - 51CTO 初の開発者コンテストが始まりました!

/* 世界を変えるために生きるここでは、あらゆる作品が市場に参入するための種となる可能性があります。...

古いSEOの概念を捨てる

インターネットは進化しており、検索エンジンも進化しています。多くの SEO コンセプトは時代遅れです...

SEOで良い仕事をしたいなら、スパムリンクの送信をやめてください

10 月 23 日は、スパム リンクを送信した多くのウェブマスターにとって災難でしたが、逆に、ユーザ...

あなたにふさわしいウェブサイトデータ分析チャート

ロレアル パリを所有するという意味なら、ウェブサイトのデータはなおさら価値があります。私は約 1 か...

pqhosting: イスラエルの VPS、苦情に強い、1Gbps の帯域幅、無制限のトラフィック、月額 3.77 ユーロから

モルドバに登録されている pq.hsoting は、世界中の複数のデータセンターで VPS を提供し...

検索エンジンアービトラージの2つのモデルの分析

裁定取引は金融用語です。学術的な説明では、2 つの市場で同じ商品を有利な価格で売買することを意味しま...

nodeserv-$3/512m メモリ/512swap/150g ハードディスク/1T トラフィック

より大きなハードドライブを搭載した VPS が必要で、価格が安く、サーバーのリソースがそれほど厳しく...

アート電子商取引モデルはまだ成熟していません。大きな成功を収めるのは難しいのでしょうか?

リン・ジェンロン「本当に収集している人は、ゆっくりとしたペースに慣れる必要があります。ペースが速くな...

Baiduがウェブサイトのユーザーエクスペリエンスを向上させる方法を個人的に教えてくれます

百度は大多数の中国人にとって非常に馴染み深いものです。長い間、百度のホームページのスタイルはGoog...

ライブ配信でグッズ販売できるチャンネルが12個!

前回は、商品を販売できる友人の輪をどのように構築するか、どのチャネルを使用して商品を購入するか、購入...