インタビューで必ず聞くこと | 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 つのホットなトレンド

推薦する

百度アライアンスが監査に失敗した理由の分析例

今日、グループで誰かが質問しているのを見ました。なぜ 2 つの Baidu Alliance に申し...

Tencent Cloud + クラウドデータベース、WordPress ブログの構築

ここでは、スクリーンショットと詳細な手順とともに、Tencent Cloud + Tencent C...

分散型 Kv-2 ラフトリーダー選出の実装

[[441163]]この記事から、raft をベースに分散 KV を構築していきます。 Raft は...

友好的なリンクを交換する方法と注意が必要な問題

みなさんこんにちは。Xiaobaoは引き続きSEOについてお話します。フレンドリーリンクについては、...

理にかなったクラウド回帰 5 つ

今日、ますます多くの企業が、選択したアプリケーションをクラウドからオンプレミスまたはホストされたデー...

tmhhost: 3ネットワークcn2 gia + 200G高防御、240元/四半期、KVM / 1Gメモリ/ 1コア/ 20gSSD / 1Tトラフィック

DDoS 攻撃は、常に人々の悩みの種でした。TMHost は、独自の 200G DDoS 防御 VP...

pzea-29 USD/年/1 GB メモリ/30 GB ハードディスク/800 GB トラフィック/10 IP/ロサンゼルス/フリーモント

- の kvmla.pro の VPS ブランド peza.com がプロモーションを行っています。...

Windows 仮想マシンを一括でチェックおよび修復する方法

01 - システム概要当社には、社内アプリケーションとテスト システムをホストする小規模なプライベー...

新しいウェブサイトはどうすれば上位にランクされるのでしょうか?

長い間運営されているウェブサイトの方が、新しいウェブサイトよりも Google で上位にランクされる...

ラジオ、テレビ、オーディオの新政策の解釈:基準値を上げると関連会社が生まれる可能性がある

テンセントテクノロジーの雷建平は7月10日に報告した。国家ラジオ映画テレビ総局は最近、「オンラインド...

JD.com の 10,000 台のマシンからなる Hadoop クラスター |分散リソース管理とジョブスケジューリング

JD.com が数万台のマシン規模で Hadoop を構築したいのはなぜでしょうか? JD.com ...

Baidu百科事典のnofollow追加を無視する

百度百科事典は、拡張読書外部リンクを削除し、参考資料にnofollow属性を追加しました。さまざまな...

NetEase Communityはサービスを停止すると発表し、担当者はNetEaseのフォーラムではないと述べた。

シャットダウンのお知らせ新浪科技報は11月15日夜、網易コミュニティ(club.163.com)が本...

クラウドネイティブアーキテクチャの7つの原則についての簡単な説明

クラウド ネイティブ アーキテクチャは、アーキテクチャ パターンとして、いくつかの原則を使用して、ア...

SEO診断と検索エンジンマーケティングの関係

He Guijiang 氏は、A5 Webmaster Network の検索マーケティング部門で ...