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

推薦する

Google ダンス観察

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

百度は「Tiebaモデレーター」を取り締まり、タオバオ内の反腐敗キャンペーンを引き継ぐ

百度は「店員」を取り締まることでタオバオ内の反汚職キャンペーンを引き継ぐ今年上半期、ジャック・マーは...

itldcはどうですか?シンガポールVPSの簡単なレビュー、実際のテストデータを共有して実際の効果をお伝えします

itldcはどうですか? itldc シンガポール VPS はどうですか?シンガポールは中国の物理的...

2010 年の SEO に関する 8 つの予測を明らかにする

昨日、seomoz.org の randfish が、2010 年の SEO に関する 8 つの予測...

中国のソーシャル ネットワークの興亡: 過去 9 年間の興亡を支配したのは誰か?

ソーシャル ネットワークの分野では、何千人もの人が試みており、Kangsheng Chuangxia...

vpsdimeはどうですか?英国VPSの簡単なレビュー

vpsdime は英国で VPS サービスを展開しており、大容量メモリ、マルチコア、広帯域幅、Ope...

00 デジタルパスワード: 世界の 9 100 の .com ドメイン名の変更

eName.cnは4月30日、インターネット時代に革命をもたらそうとしているデジタルドメイン名が今年...

より小さなコンテナを構築する方法

コンテナの操作は、多くのユーザーや開発者にとって日常的なタスクです。コンテナ開発者は、コンテナイメー...

最適化の観点からHTML5の開発を見る

2011 年現在、HTML5 は WEB 業界で最も関心の高い問題の 1 つであると考えられます。フ...

servarica - カナダのクラスター / カナダのマルチ IP ホスティング / カナダのクラスター VPS、50 IPv4

現在、複数の IP を持つカナダのホストはほとんどありません。もちろん、ここで話しているのはネイティ...

Baidu、Google、.CN、問題なし

.cn の 1 元ブームが始まって以来、.cn は市場ですぐに人気商品となり、多くの SEO 担当者...

サイト全体の最適化プロジェクトの運営経験を共有

インターネット マーケティングの時代では、Baidu、Google、360 が 3 大検索エンジンで...

#BlackWeek5#: Hostus - 香港を含む 9 つのデータセンター / 10G ポート / DDOS 保護 / さまざまな特別オファー

Hostus の今年のブラックフライデーはこの記事で取り上げます。最新ニュースは次のとおりです。ワシ...

Googleが2014年の年間検索ランキングを発表

Googleは、2014年に人々が最も関心を寄せた話題の出来事や社会動向をデータの観点から紹介する「...