Kafka はどのようにしてメッセージ消費のグローバル順序を保証するのでしょうか?

Kafka はどのようにしてメッセージ消費のグローバル順序を保証するのでしょうか?

みなさんこんにちは、私は仙宇です

今日はカフカについてお話します

メッセージが生成されるときに、パーティションまたはキーが指定されていない場合、消費はラウンドロビン方式ですべての使用可能なパーティションに均等に分散されますが、必ずしもパーティションの順序どおりになるとは限りません。

写真

Kafka では、コンシューマーは 1 つ以上のトピックをサブスクライブし、1 つ以上のパーティションを割り当てることができることがわかっています。

写真

コンシューマーが複数のパーティションを消費する場合、一部のシナリオではコンシューマーはメッセージを順番に消費する必要がありますが、メッセージはパーティションに順番に割り当てられないため、メッセージの消費のグローバルな順序が保証されない可能性があります。

たとえば、下の図では、Msg0002 メッセージは Msg0001 メッセージの後にないため、コンシューマーが最初に Msg0002 メッセージを消費し、その後 Msg0001 メッセージが消費される可能性があります。

では、この状況をどのように解決すればよいのでしょうか?メッセージ消費のグローバル順序を可能な限り確保するにはどうすればよいでしょうか?メッセージBを消費するには、まずメッセージAを消費する必要がある

Kafka は、グローバルな順序を強制するのではなく、高いスループットと低いレイテンシを提供するように設計されていることに注意してください。

そこでこの記事では、グローバルな連続性を重視する必要があるシナリオにおける Kafka アプリケーションについて説明します。

単一パーティション

最も単純かつ最も残酷な方法。 Kafka はグローバルな消費順序を保証することはできませんが、パーティション内のメッセージの順序は保証できます。

写真

したがって、パーティションを 1 つだけ作成し、コンシューマーがこのパーティションを消費できるようにすることで、消費されたメッセージが順序どおりであることを保証できます。

しかし、そうするとスループットと処理効率が大幅に低下し、パフォーマンスのボトルネックが発生しやすくなります。

キーベースのメッセージ配信戦略

Kafka では、キーベースのメッセージ配信戦略により、メッセージ内のキーを使用して、メッセージが送信されるパーティションが決定されます。

プロデューサーがメッセージを送信するときにキーを指定できます。Kafka はハッシュ アルゴリズムを通じてこのキーを使用して、メッセージが送信されるパーティションを決定します。

写真

同じキーが同じパーティションに送信されるため、消費されたメッセージが順序どおりに保たれます。

ただし、同じキーを持つメッセージを消費するコンシューマーが 1 つしかない場合、キーベースのメッセージ配布戦略では、単一のパーティションと比較してスループットは向上しません。

同じキーを持つメッセージが複数のパーティションにある場合でも、同じコンシューマーは 1 つのパーティションからしか消費できないため、全体的な処理能力は増加しません。

ただし、同じキーを持つメッセージを消費するコンシューマーが複数存在する場合、キーベースのパーティショニング戦略により、コンシューマーの並列消費能力を向上させることができます。

写真

これらのコンシューマーは異なるパーティションから同時にメッセージを読み取ることができるため、全体的な処理速度が向上します。この場合、キーベースのメッセージ配信により全体的なスループットが向上します。

最後にまとめます。

  • Kafka の設計目標は、グローバルな順序を強制するのではなく、高いスループットと低いレイテンシを提供することです。そのため、Kafka は複数のパーティションの概念を使用し、単一のパーティション内の順序のみを保証します。
  • メッセージのグローバルな順序付けを実現したい場合

単一パーティション戦略: 1 つのトピックの下に 1 つのパーティションのみが作成され、1 人のコンシューマーが 1 つのパーティションのみを使用します。ただし、これには同時実行性がないため、システム パフォーマンスが大幅に低下します。

キーベースのメッセージ配布戦略: 同じキーが同じパーティションに送信されるため、消費されたメッセージが順序付けられることが保証されます。ただし、同じキーを持つメッセージを消費するコンシューマーが 1 つだけの場合、以前の単一パーティションと比較して違いはありません。

<<:  クラウドベースのデータソリューション: デジタル変革の道をリード

>>:  高性能、多階層高可用性、クラウドネイティブデータベースGaiaDBのアーキテクチャ設計の分析

推薦する

分散システムサービスの登録と検出の原理を徹底的に理解するための13枚の写真

[[349916]]この記事はWeChatの公開アカウント「笑い好きの建築家」から転載したものです。...

SEO 担当者が知っておくべき 6 つの高度な検索コマンド

SEO ワーカーは、高度な検索エンジン コマンドに最も頻繁に触れるユーザー グループの 1 つです。...

ウェブサイト最適化に関する FAQ 4: ウェブサイトにはなぜホームページだけが含まれているのですか?

先ほど、SEO に関する FAQ の 3 つの側面、 「新しいサイトが含まれないのはなぜか」、「 W...

大人でもわかるGitOps初心者ガイド

GitOpsの概念は、Kubernetes管理会社であるWeaveworksによって2017年に初め...

Tik Tokマーケティングを行うには? 10.5の提案はこちら

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますTik T...

#618# Gouyun、クラウドサーバーの30%割引、残高\50%割引コードを獲得できる抽選など、香港\日本\韓国\米国の10以上のデータセンターが利用可能

GouCloudは、年半ばの618特別割引プロモーションを開始しました。すべてのエラスティッククラウ...

マイクロソフトがWindows 10正式版をリリース

マイクロソフトは北京時間7月29日午前0時から、中国を含む世界中のユーザーに向けてWindows 1...

ファーウェイのクラウドERP移行ソリューションの評価、企業のクラウド化を加速

企業は完全なクラウド移行の時代を迎えており、ERP をクラウドに移行することが一般的な傾向となってい...

Amazon SageMaker は、Xingzhe AI がゲーム コンテンツのフィルタリングで 96% の精度を達成するのを支援します

記者が星浙AI(成都千智人工知能科技有限公司傘下のブランド、星浙.ai)から得た情報によると、同社が...

ユーザーとクラウドは敵なのでしょうか?

パブリック クラウド ベンダーのダウンタイム、データ損失、ハードウェア障害、人為的エラーなどのインシ...

クラウドコンピューティングと人工知能の組み合わせは技術革命となるだろう

人工知能は、最初の自己生成技術として、過去からの根本的な脱却です。人間の助けなしに自らを改良できる技...

Yoast ウェブサイト SEO ツール

Yoast SEO は最も人気のある WordPress プラグインの 1 つです。個人ブログを運営...

ユーザーエクスペリエンスは、eコマースウェブサイトのブランド成長の基盤です

2011年は電子商取引が爆発的に成長した年でした。10年間の発展を経て、この新興産業はついに巨額の資...

高品質な外部リンクはどこから来るのでしょうか?

外部リンクは SEO 担当者にとって馴染み深いものですが、外部リンクだけでウェブサイトのランキングを...