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

推薦する

「クラウド + データベース」がデジタル変革への道を開く

[51CTO.com からのオリジナル記事] データがビジネスを推進し、この傾向は「インテリジェンス...

dotvps-1gメモリKVM/月額7ドル/イギリス/Gポート

dotvps.co は 2011 年に設立されました。ドメイン名が少し変に見えますか?しかし、2年以...

安定性と拡張性を強化したk8s高可用性ソリューション「クラウドネイティブ」の解説と実践運用

1. 概要高可用性ソリューションに関する私の以前の記事やその他のオンライン資料では、基本的にほとんど...

優れたマーケティングが全てを決定するのでしょうか?

ビジネスを営む上で、製品がビジネスの中核となると多くの人が言いますが、多くの優れた製品は不適切なマー...

JD.comとYitaoが再び混乱。価格比較サイトの公平性を監督しているのは誰か?

電子商取引戦争の火花は次第に消えていったが、業界内の争いはまだまだ終息していない。価格比較サイトが8...

軽視できないフォーラム形式の外部リンク

外部リンクは、ウェブサイトのインバウンド リンクです。インバウンド リンクはウェブサイトにとって非常...

大手のモバイル インターネット ゲーム: 囲い込み、プラットフォーム、そして未知のもの

(文:季勇青、袁銀、編集者:王奇) Android アプリ ストアで「QQ」を検索すると、モバイル ...

プロフェッショナル向けソーシャルネットワーク「Identified」が2,100万ドルを調達

海外メディアの報道によると、6月5日、プロフェッショナル向けソーシャルネットワーキングサイトIden...

Googleランキング最適化調査(パート3)

1. リンク ページ、About ページ、お問い合わせページなどを除いて、本当に高品質なコンテンツを...

360 Search Index がリリースされました

検索インデックスは今日、新しいものを追加しました。360検索インデックスは今日ひっそりとリリースされ...

アリババがオンライン文学のパイをシェアするのは遅すぎますか?

私がオンライン文学の分野に注目する理由は、1年以上前に数か月間オンライン作家として「ゲスト出演」した...

ワールドカップが近づいてきました。ブランドマーケティングのヒントをすべてご紹介します。

ワールドカップは企業ブランドマーケティング競争の夢の舞台です! FIFA ワールドカップは世界で最も...

ウェブサイトのコンテンツを読むためにページをめくる必要があるのはなぜですか?

コンテンツは最も高価です!ウェブサイトを運営する人にとって、コンテンツの価値を高めるにはどうすればよ...

Old Snail: 中小企業向けオンラインマーケティングの実践経験の共有

Old Snail: インターネット マーケティングに関しては、私はその分野に精通しているとは言いま...

ユーザーエクスペリエンスを良くするためには、何を言うべきか

Baidu のアルゴリズムは、ユーザーの検索エクスペリエンスを継続的に向上させるために、常にアップグ...