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のアーキテクチャ設計の分析

推薦する

クラウド コンピューティング: ビジネスを破滅させる可能性のある 7 つの致命的なミス

クラウド コンピューティングは、ネットワーク ベースのコンピューティング サービス配信方法であり、「...

2022年のトップ10消費者市場トラック!

2022年上半期、市場の成長率は鈍化し、消費者の嗜好は「大手ブランドを買うか、コストパフォーマンスを...

事例 - Joyo と Dangdang が検索エンジンを使用して製品を宣伝する方法

この記事では、主に、2 大 B2C ウェブサイトである Joyo と Dangdang が検索エンジ...

衛星テレビの自衛:反撃か?それともそれは単なる自殺の方法なのでしょうか?

湖南テレビの「独占放送」戦略「使いにくいのでダウンロードしないでください」「史上最悪の動画ソフト」な...

フレーズマッチ2.0、トラフィックの正確な制御、入札の習得

少し前に、Baidu は検索マーケティングのマッチング方法をアップグレードしました。主にフレーズ マ...

エッジコンピューティングの未来: モバイル通信会社、小売、銀行、金融サービス

私たちは、エッジ コンピューティングというコンピューティングの新しい時代にいます。これまでのあらゆる...

クラウドコンピューティングは「黄金の10年」に突入:その発展を振り返る

10年以上の開発を経て、クラウドコンピューティングは頂点に達しました。クラウド コンピューティングの...

ハイブリッドおよびマルチクラウドのアプローチの詳細

ハイブリッドクラウドとマルチクラウドの導入は、ビジネスを行うための新しい標準になりつつあります。これ...

#ポイント# hiformance: $9.9/年 - KVM、512 メモリ、6 データセンター (CN2) - Alipay

Hiformance の最新の電子メール プロモーション: 夏の Hiformance プロモーショ...

郡レベルのポータルステーションは、最初のポータルステーションになった場合にのみ開発の機会を得ることができます。

多くの郡レベルのウェブサイトを分析した結果、ほとんどの郡にはまだ市場の可能性が残っていることがわかり...

Google ダンス観察

Google がますます保守的になっているので、SEO について心配しなければなりません。なぜそう言...

burstNet-E6500/4g メモリ/500g ハードディスク/5T トラフィック/フリー DA パネル

BurstNet は、デフォルトで 5T のデータ トラフィックを備えた特別価格のモデルを 2 つリ...

Mixue Ice Cityブランドアップグレードマーケティング戦略事例

この世で唯一負けない武術こそが真の武術だ! 、正規品、公正な価格、これがMixue Bingchen...

キーワードランキングを決定するいくつかの要素についての簡単な説明

ウェブサイトの場合、キーワードのランキングを決定する要素は多数あります。おそらく、この点に関して、ス...