Kafka のプロデューサー、コンシューマー、ブローカーの基本概念

Kafka のプロデューサー、コンシューマー、ブローカーの基本概念

Kafka は、パブリッシングおよびサブスクリプションベースのメッセージング システムです。一般的には「分散コミット ログ」または「分散ストリーミング プラットフォーム」と呼ばれます。ファイル システムまたはデータベースのコミット ログは、すべてのトランザクションの永続的な記録を提供するために使用され、これらのログを再構築することでシステムの状態を再構築できます。同様に、Kafka データは特定の順序で永続化および保存され、オンデマンドで読み取ることができます。

1. Kafka トポロジ

2. カフカの特徴

配信とサブスクリプションの両方に高いスループットを提供します。 Kafka は 1 秒あたり約 250,000 メッセージ (50 MB) を生成し、1 秒あたり 550,000 メッセージ (110 MB) を処理できるとされています。ここで言及されているメッセージの数は、メッセージのサイズが一定でない可能性があるため、特に正確ではない可能性があります。

永続化操作を実行してメッセージをディスクに永続化し、ログの形式で保存できるため、ETL などのバッチ消費やリアルタイム アプリケーションに使用できます。データをハードディスクに保存し、複製することでデータの損失を防ぎます。
分散型システムなので、外部への拡張が容易です。複数のプロデューサー、ブローカー、コンシューマーが存在し、それらはすべて分散されます。ダウンタイムなしでマシンを拡張します。

メッセージ処理の状態はサーバー側ではなくコンシューマー側で維持され、障害が発生した場合に自動的にバランスをとることができます。
オンラインとオフラインのシナリオをサポートします。

3. Kafka の核となる概念

用語集
プロデューサーメッセージプロデューサー
消費者メッセージ 消費者
ConsumerGroup コンシューマ グループ。トピック内のパーティションからメッセージを並行して消費できます。
ブローカー キャッシュ エージェント、Kafka クラスター内の 1 つ以上のサーバーは総称してブローカーと呼ばれます。
トピックKafkaはさまざまな種類のメッセージソース(メッセージのフィード)を処理します。
パーティション トピックは物理的なグループ化です。トピックは複数のパーティションに分割でき、各パーティションは順序付けられたキューです。パーティション内の各メッセージには順序付けられたID(オフセット)が割り当てられます。
メッセージはコミュニケーションの基本単位です。各プロデューサーはトピックにいくつかのメッセージを公開できます。
プロデューサーはメッセージとデータを生成する存在です。 Kafka トピックにメッセージを公開するプロセスはプロデューサーと呼ばれます。
消費者はメッセージとデータの消費者です。トピックをサブスクライブし、公開されたデータを処理するプロセスは、コンシューマーと呼ばれます。

3.1 プロデューサーの概念

メッセージおよびデータ ジェネレーター。 Kafka トピックにメッセージを公開するプロセスはプロデューサーと呼ばれます。
プロデューサーは指定されたトピックにメッセージを公開します。プロデューサーは、たとえばラウンドロビン方式やその他のアルゴリズムに基づいて、メッセージがどのパーティションに属するかを決定することもできます。
非同期バッチ送信により、送信効率を効果的に向上できます。 kafka プロデューサーの非同期送信モードでは、バッチ送信が可能になります。メッセージは最初にメモリにキャッシュされ、その後一度にバッチで送信されます。

3.2 ブローカーの概念:

ブローカーにはレプリカ メカニズムがありません。ブローカーがダウンすると、そのブローカーのメッセージは利用できなくなります。
ブローカーはサブスクライバーのステータスを保存しません。これはサブスクライバー自身によって保存されます。
ステートレスであるため、メッセージを削除することが困難です (削除されたメッセージはサブスクライブされている可能性があります)。 Kafka は時間ベースの SLA (サービス保証) を使用し、メッセージは一定期間 (通常は 7 日間) 保存された後に削除されます。
消費者加入者は、任意の場所に戻って再度視聴することができます。サブスクライバーに障害が発生した場合、最小のオフセット (ID) を選択して消費メッセージを再読み取りできます。

3.3 メッセージの構成

メッセージ: コミュニケーションの基本単位です。各プロデューサーはトピックにメッセージを公開できます。
Kafka のメッセージはトピックに基づいて整理されます。さまざまなトピックは互いに独立しています。各トピックは異なるパーティションに分割でき、各パーティションにはメッセージの一部が格納されます。
パーティション内の各メッセージには、次の 3 つの属性が含まれます。
オフセット長い
メッセージサイズ int32
データメッセージの具体的な内容

3.4 消費者の概念

メッセージとデータのコンシューマー、トピックをサブスクライブし、公開されるメッセージを処理するプロセスをコンシューマーと呼びます。 Kafka では、グループを「サブスクライバー」と考えることができます。トピック内の各パーティションは、「サブスクライバー」内のコンシューマーによってのみ消費されますが、コンシューマーは複数のパーティションからのメッセージを消費できます。注: Kafka の設計原則では、トピックの場合、同じグループには同時に消費するパーティションの数よりも多くのコンシューマーを含めることはできません。そうしないと、一部のコンシューマーがメッセージを取得できないことになります。

<<:  クラウドの可観測性における5つの主要な新たなトレンド

>>:  クラウドネイティブシナリオでサーバーレスアプリケーションプログラミングモデルを体験する

推薦する

香港の金融ウェブサイト16件が中国本土のハッカーに脅迫され、容疑者6人が逮捕された

記者が1日、公安部から得た情報によると、最近、公安部の統一的な調整と指揮の下、中国本土の公安機関と香...

Baidu の入札は非常に強力ですが、SEO はどこに向かうべきでしょうか?

百度の入札力はこんなにも強いのか?SEOはどこへ向かうべきなのか?中国の現状から判断すると、百度は約...

魅力的なクラウドイノベーション16選

パブリック クラウドについて考えるとき、最初に思い浮かぶのはたいてい財務的なことです。ワークロードを...

宋連軍:ウェブサイト構造の最適化:テキストリンクの構築

ウェブサイトの構造は複数のテキストリンクで構成されており、リンクはウェブサイト構造におけるリンクの役...

Linodeはどうですか?インドネシアのジャカルタデータセンターのクラウドサーバーの評価

LinodeはAkamaiに買収されて以降、インドネシアのクラウドサーバー事業を運営するため、南アジ...

2022年グローバルデジタル経済会議インターネット3.0サミットが北京で開催

7月28日午後、「バーチャルとリアルの共存、未来が来た」をテーマにした2022年世界デジタル経済会議...

Hippo で WebAssembly を始める

導入WebAssembly は、Microsoft のクラウド ネイティブ コンピューティング チー...

2020 年に注目すべき 7 つのエッジ コンピューティング トレンド

世界的なパンデミックが続く現在でも、業界アナリストは、エッジコンピューティングと無料の5Gネットワ​...

キャプテンサーバー - 3.75ドル/Kvm/1gメモリ/100M無制限

まったく新しい VPS マーチャントである captainserver は、仮想ホスティング、x、V...

2つのセッションからデジタルトランスフォーメーションの新たなトレンドについての洞察を得る

【元記事は51CTO.comより】 先ほど終了した「両会」は極めて重要な意味を持つ。2021年は中国...

cloudsilk: 日本の VPS を販売中、必須の 3 ネットワークの日本の CMI、360 元/年 - 512M メモリ/1 コア/10g SSD/800G トラフィック

Cloudsilk は、中国本土向けに最適化された BGP ネットワーク、具体的には 3 つのネット...

Kubernetes マイクロサービス自動リリース システム

[[340132]]この記事はWeChatの公開アカウント「Invincible Coder」から転...

Xiaomi の「インターネット思考」とは一体何でしょうか?

はじめに: 雷軍はインターネットの考え方を「集中、極限、口コミ、高速」という 7 つの単語に凝縮しま...

IDCが調査レポートを発表:世界のパブリッククラウドサービス支出は2022年に5,000億ドルを超える

調査会社IDCが最近発表した調査レポートによると、世界のパブリッククラウドサービスの支出は2022年...

ウェブサイトの微調整は不可欠であり、コンバージョンの向上が鍵となる

ご存知のとおり、企業ウェブサイトではコンバージョン率が鍵となります。トラフィックは非常に重要ですが、...