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

推薦する

Baidu による旅行ウェブサイトのプロモーションに関する経験と洞察

2012年に旅行会社にSEOスーパーバイザーとして入社してから1年以上が経ちました。いろいろな思いが...

SEO: 始めない方が良い

検索エンジン最適化は、技術的コンテンツが最も少ないインターネット サービスであると考えられることがあ...

古い話を再考する: 疑似静的 URL 最適化の新しい解釈

ウェブサイトのパスを擬似静的にすることは、すでに一般的な話題です。SEO 業界に携わるようになって以...

タオバオの新規店舗のスタートラインで勝つ方法

毎日何千もの店舗がタオバオに参入し、毎日何千もの店舗が閉店していると言われています。最近、私の周りの...

iniz-vps 簡易評価 (128m メモリ/ロサンゼルス)

iniz がプロモーションを開始したばかりなので、HostCat の Web サイトでレビューを書く...

Baiduの統計を有効活用して効率的な入札を実現

インターネットの普及と百度の人気により、私たちは日常生活や仕事で問題に遭遇したとき、いつもこの言葉を...

オリジナル: 外部リンクよりも量を優先すべきか、それとも質を優先すべきか?

多くのウェブマスターは、外部リンクが多ければランキングも上がると考えていますが、実際には外部リンクが...

オンラインストアシステム構築におけるJAVAとPHPプログラミング言語の分析

中国では電子商取引の推進が成功し、JD.comやSuningなどの大型B2C総合オンラインショッピン...

モノのインターネットは、今後10年間でテクノロジー大手にとってホットな話題となるだろう

現在、エッジ コンピューティング市場はまだ開発の初期段階にあります。クラウドコンピューティング市場を...

Baidu Green Wave アルゴリズム 2.0 により SEO 最適化は過去のものになる

今年は私たちウェブマスターにとって大変な年です。外部リンクを貼るのが難しいだけでなく、検索エンジンに...

Google 検索結果が同じドメインから 1 ページあたり 7 件の結果に変更されました。詳細

編集者注: この記事は、searchengineland の編集長である Danny Sulliva...

Dogyun:「韓国」データセンター「マルチラインBGP最適化」VPSの簡単なレビュー

韓国はアジアの中で私たちに最も近い国の一つであり、物理的な距離が速度を決定することは明らかです。 D...

ウェブサイトのユーザーエクスペリエンスを向上させ、ユーザー心理を把握することが最も重要です

今日、タオバオで残念なことに遭遇しました。友達が服を気に入って、私に買ってほしいと頼んできたのです。...

貴州省のビッグデータとクラウドコンピューティングの学部卒業生第1期生が卒業、就職の心配なし

[[235895]] 「入社2日目から業務に慣れ、開発業務に取り組み始めました。」貴州大学省実証ソフ...

肉家餅を売って1日800ドル稼ぐ洛陽のおじさんに学ぶマーケティングのやり方

百度で「洛陽叔父」という4つの単語を入力すると、200万件以上の検索結果が表示されます。彼がなぜ有名...