Kafka のコアコンセプトを図解で解説しているので、一目で理解できます。

Kafka のコアコンセプトを図解で解説しているので、一目で理解できます。

[[399167]]

画像はPexelsより

1. 基本

[[399168]]

Kafka は、バックエンド サービスが相互に簡単に通信できるようにするストリーム処理システムであり、マイクロサービス アーキテクチャでよく使用されるコンポーネントです。

2. 生産者 消費者

プロデューサー サービス Producer は Kafka にメッセージを送信し、コンシューマー サービス Consumer は Kafka をリッスンしてメッセージを受信します。

サービスはプロデューサーとコンシューマーの両方になることができます。

3. トピック

トピックは、プロデューサーがメッセージを送信する宛先アドレスであり、コンシューマーの監視対象です。

サービスは複数のトピックを監視し、送信できます。

Kafka には [consumer-group] という概念があります。

これは、消費者として機能するサービスのグループです。

コンシューマー グループがメッセージを受信すると、Kafka はメッセージをグループ内のサービスにルーティングします。

これにより、メッセージの負荷のバランスが取れ、コンシューマーの拡張が容易になります。

トピックはメッセージ キューとして機能します。まず、メッセージが送信されました。

メッセージは記録され、キューに保存され、変更することはできません。

次に、このトピックのコンシューマーにメッセージが送信されます。

ただし、メッセージは削除されず、キューに残ります。

メッセージを送信し続けます。

前と同様に、メッセージはコンシューマーに配信され、変更できず、キューに残ります。 (メッセージがキューに留まる時間は、Kafka の設定を変更することで決定できます)

4. パーティション

上記の Topic の説明では、Topic はキューとして扱われます。実際、トピックはパーティションと呼ばれる複数のキューで構成されています。

これにより、トピックを拡張しやすくなります。

プロデューサーがメッセージを送信すると、メッセージはこのトピック内のパーティションにルーティングされます。

コンシューマーはすべてのパーティションをリッスンし、それらすべてからのイベントを消費します。

プロデューサーがメッセージを送信する場合、そのメッセージはデフォルトでトピック指向になります。トピックはどのパーティションに配置するかを決定し、デフォルトではポーリング戦略が使用されます。

同じタイプのメッセージが同じパーティション内に存在するようにトピックを構成することもできます。

たとえば、ユーザー メッセージを処理する場合、特定のユーザーのすべてのメッセージを 1 つのパーティションに配置できます。

たとえば、ユーザー 1 が 3 つのメッセージ (A、B、C) を送信します。デフォルトでは、これらの 3 つのメッセージは異なるパーティション (P1、P2、P3 など) にあります。

設定後、ユーザー 1 のすべてのメッセージが同じパーティション (P1 など) に送信されることが保証されます。

この機能の用途は何ですか?これはメッセージの秩序を保つためです。

異なるパーティション内のメッセージの順序は保証されません。 1 つのパーティション内のメッセージのみが順序付けられます。

5. 建築

Kafka はクラスターベースのアーキテクチャであり、ZooKeeper は重要なコンポーネントです。

ZooKeeper はすべてのトピックとパーティションを管理します。

トピックとパーティションはノードの物理ノードに保存され、ZooKeeper がこれらのノードの保守を担当します。

たとえば、トピックが 2 つあり、それぞれにパーティションが 2 つあります。

これは論理的な形式ですが、Kafka クラスター内の実際のストレージは次のようになります。

トピック A のパーティション #1 には 3 つのコピーがあり、各ノードに分散されています。

これにより、Kafka の信頼性とシステムの回復力が向上します。

3 パーティション #1 では、ZooKeeper はプロデューサーからのメッセージを受信するリーダーを指定します。

他の 2 つのパーティション #1 はフォロワーとして機能し、リーダーが受信したメッセージはフォロワーにコピーされます。

このようにして、各パーティションにはメッセージ データの全量が含まれます。

ノードに障害が発生しても、メッセージの破損を心配する必要はありません。

トピック A とトピック B のすべてのパーティションの分布は次のようになります。

読んでいただきありがとうございます。お役に立てれば幸いです。

編集者:タオ・ジアロン

出典: https://timothystepro.medium.com/visualizing-kafka-20bc384803e7

<<:  運用者の実践から、「インテリジェントマルチクラウド」がクラウド戦略成功の鍵となった理由

>>:  より小さなコンテナを構築する方法

推薦する

virmach-シンプルなレビュー:フェニックスデータセンター、2Gメモリ特別価格VPS

昨日の virmach の VPS の特別価格 [virmach-$2/Win/1g メモリ/15g...

信頼性の高いホスティングサービス: $30/i7-860/16g メモリ/2x500g+2x1T/5T トラフィック

reliablehostingservices.net は 2008 年から運営されている企業で、低...

企業ウェブサイトのコンテンツ構築が百度のニーズに追いつけない理由の分析

検索エンジンがユーザーエクスペリエンスを推進し、企業にウェブサイトのコンテンツ構築に重点を置くよう指...

SEO最適化の突破口となるロングテールキーワード戦略

ロングテールキーワードとは何かを理解するには、クリス・アンダーソンが提唱するロングテール理論について...

ウェブサイトのコンバージョン率を上げる最も効果的な方法

ウェブサイトのランキングが高くない場合、どうすれば改善できるでしょうか? 実際、ウェブサイトのランキ...

最適化のヒント: サイト内記事を通じてウェブサイトの重量を改善する

重みとは何ですか?数学的な観点から、特定の量の合計量における重要性を示すために、それぞれ異なる比例係...

パブリッククラウド、プライベートクラウド、ハイブリッドクラウド、クラウド災害復旧にはどれを選択すべきでしょうか?

パブリック クラウド、プライベート クラウド、ハイブリッド クラウドのいずれをベースとしているかにか...

ShardingSphere 分散データベースの紹介

[[441256]] Apache ShardingSphere はオープンソースの分散データベース...

オフラインの花屋がオンラインの花屋を開業するためのマーケティング戦略を分析する

誰もが、お祭りのときに大切な人に花を贈る習慣があると思います。では、花屋を経営している方は、オフライ...

検索エンジンのランキングに影響を与える要因は何ですか?

検索エンジンにおけるウェブサイトのランキングは、多くの要因によって決まります。すべてをまとめることは...

Kリストに掲載された企業ウェブサイトのランキング回復プロセス

最近最適化した企業ウェブサイトの全プロセスを皆さんと共有したいと思います。このウェブサイトは、Bai...

アリババクラウドは金融グレードの分散アーキテクチャソリューションをアップグレードし、南京銀行のコアシステムのクラウド化を支援

7月11日夜、アリババクラウドは金融グレードの分散アーキテクチャソリューションのアップグレードを発表...

実体験の共有: .htaccess ファイルで悪質なスパイダーをブロックする

1 週間前、著者は「SEO 診断: ログを通じて Web サイトのデッドロックを見つける」というタイ...

SEO で収益を上げることを考えたことはありますか?

SEO に関して言えば、一部のウェブマスターはランキングについて考えるでしょうが、より多くのウェブマ...