インタビューで必ず聞くこと | Kafka の消費モデルについてお話ししましょうか?

インタビューで必ず聞くこと | Kafka の消費モデルについてお話ししましょうか?

[[442172]]

みなさんこんにちは、Bingheです〜〜

最近、何人かの読者が Toutiao に 2 回目のインタビューを受けに行き、インタビュアーから Kafka に関する質問を受けました。複数の Kafka コンシューマーが、同じトピックの同じパーティションから同時にデータを使用するにはどうすればよいでしょうか?単純な質問のように思えますが、実際には読者を混乱させてしまいました。

今日は、この面接の質問について一緒に話しましょう。さて、今日の話題を始めましょう。

トピック分析

まず、インタビュアーの質問を理解する必要があります。複数の Kafka コンシューマーが、同じトピックの同じパーティションから同時にデータを使用するにはどうすればよいでしょうか?この質問は非常に明白です。複数の Kafka コンシューマーが、同じトピックの同じパーティションから同時にデータを消費できるようにする方法を答える必要があります。

この質問に適切に答えるには、Kafka のコンシューマー グループという概念を理解する必要があります。コンシューマ グループは、Kafka がユニキャストとブロードキャストの両方のメッセージ モデルを実装するための基礎および手段です。

同じトピックの場合、各コンシューマー グループはこのトピック内のすべてのデータを取得できます。コンシューマー グループ内のすべてのコンシューマーは連携して、Kafka トピック内のすべてのパーティションをサブスクライブし、消費します。ここで、各パーティションは、同じコンシューマー グループ内の 1 つのコンシューマーによってのみ消費されます。

ここでは、理解を深めるために、以下に示すように、Kafka がメッセージを消費する原理の図を描きます。

この図では、トピックは複数のパーティションで構成できます。プロデューサーによって送信されたメッセージは、異なるパーティションに分散されます。消費者は消費者グループに応じてデータを受け取ります。 Kafka は、各パーティション内のメッセージが、同じコンシューマー グループ内の同じコンシューマーによってのみ消費されることを保証します。

繰り返し消費したい場合は、消費する他の消費者グループが必要です。 Zookeerper は、各コンシューマー グループの各トピックの下の各パーティションで消費されたオフセットを保存します。

新しいバージョンの Kafka では、このオフセットが __consumer_offsert というトピックに保存されます。この__consumer_offsertには50個のパーティションがあり、保存するパーティションはコンシューマーグループID %50のハッシュ値によって決定されます。これもZookeeperが大量のデータの読み書きを得意としていないためです。

したがって、コンシューマー グループが複数のコンシューマーを使用して Kafka で同時にメッセージを消費する場合は、複数のスレッドを使用してメッセージを読み取ることができます。 1 つのスレッドは 1 つのコンシューマー インスタンスに相当します。コンシューマーの数がパーティションの数より多い場合、一部のコンシューマー スレッドはデータを読み取ることができなくなります。

知識を広げる

ここで、例を見てみましょう。トピック testTopic が groupA によって消費され、別の新しい groupB が testTopic の消費を開始するとします。デフォルトでは、testTopic-groupB のオフセットは 0 ではありませんが、Kafka ではそのようなオフセットは確立されていません。

testTopic トピックにデータがある場合を除き、groupB はデータを受信し、そのデータは最初のデータでもあります。この時点で、--from-beginning が明示的に使用されて 0 から始まるデータを取得しない限り、groupB の Offset は 0 からではなく、新しく初期化された Offset から始まります。

質問 回答

複数の Kafka コンシューマーが同じトピックの同じパーティションから同時にデータを使用する場合は、それらを異なるコンシューマー グループに配置する必要があります。

はい、今日はこれで終わりです。私はビンヘです。また次回お会いしましょう〜〜

この記事はWeChatの公開アカウント「Glacier Technology」から転載したものです。下のQRコードからフォローできます。この記事を転載する場合は、Glacier Technology 公式アカウントまでご連絡ください。

<<:  Kubernetes 1.23 について知っておくべきことすべて

>>:  2022年の予測: クラウド コンピューティングの 3 つのホットなトレンド

推薦する

最適化とユーザーエクスペリエンスの向上につながるウェブサイトの下部ナビゲーションを設計する方法

ボトムナビゲーションについては、ウェブマスターの友人なら誰でも知っていると思いますが、最適化を促進し...

IoT とエッジ コンピューティングの将来はどうなるのでしょうか?

モノのインターネットとエッジコンピューティングは、将来の技術開発に関する議論において長い間注目されて...

個人開発者の生活実態調査:埋め込み広告に頼る傾向が強い

さまざまなモバイル アプリケーション開発者の圧倒的な富の創造神話の背後には、この大規模なモバイル ア...

domain.com、すべてのドメイン名が30%オフ、各ドメイン名は最大5年間登録可能

老舗ドメイン名販売業者のdomain.comがプロモーションを実施しています。すべてのドメイン名が3...

Pinduoduoは新たな戦場を見つけたのか?

11月中旬、中国の3大電子商取引企業、アリババ、JD.com、ピンドゥオドゥオが相次いで第3四半期の...

2020年、インターネットセレブをどうやって作るのか?

今年最初のインターネット有名人ゴシップの波は「それほど有害ではないが、非常に侮辱的」だった。まず、1...

Baidu Webmaster Platform Lee: Green Radish Algorithm 2.0 のペナルティ方法は何ですか?

A5ウェブマスターネットワーク(http://www.admin5.com/)は7月4日、Baidu...

ガートナー:クラウド技術は急速にローカルデータセンターネットワークに浸透している

クラウド テクノロジーは、ローカル データ センター ネットワークにますます浸透しています。これは、...

IDC:2021年上半期、中国のエッジコンピューティングサーバーの市場規模は全体で13億3000万米ドルに達した

[[432664]]インターナショナル・データ・コーポレーション(IDC)が発表した「中国半期エッジ...

偽の「ビッグマウスモンキー」をネットで販売し80万元の利益を得たとして、ネットショップのパートナー2人が逮捕される

見た目や色の違いに加え、商標の「Big Mouth Monkey」も異なります(左が本物)。趙氏は警...

マイクロソフトの重大な脆弱性が大規模なワーム攻撃につながる可能性

[CCIDnet-IT テクノロジー ニュース] マイクロソフトは最新の情報セキュリティ速報で、リモ...

WeChat O2O収益化の段階的なルートが明らかに:Tenpayとの完全な統合

WeChat O2O収益化の段階的なルートが明らかに:Tenpayとの完全な統合【捜狐ITニュース】...

ウェブクローラーの書き方をステップバイステップで教えます(6):分散クローラー

このシリーズ: 「Webクローラー作成ガイド(1):NetEase Cloud Musicプレイリス...

ITインターネットリーダーの視点から見た2013年:新たな状況におけるチャンス

2012年は過ぎましたが、世界の終わりはまだ来ておらず、ITとインターネットの紛争は続くでしょう。記...