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

推薦する

インターネット企業間の「混沌とした戦い」:勝敗は二分される

9月18日、広東省高級人民法院は、テンセントテクノロジー(深圳)有限公司が北京奇虎テクノロジー株式会...

ゼロトラスト原則を使用して Kubernetes 環境へのアクセスを保護する

現代の IT 環境はますます動的になっています。たとえば、Kubernetes は多くの組織の可能性...

100万元以上のマイクロマーケティングチーム、仕事の効率を上げる秘訣

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますマーケティ...

企業はジュメイからビジネスの真の意味を探り、他人の真似をしないべきだ

「美に焦点を当て、大人の美しさを促進する」という意味を持つジュメイは、シンプルで面白く、信頼できる化...

Pinduoduo が資金の燃焼をやめたら何が起こるでしょうか?

電子商取引業界では、ゲームに多額の資金を費やす人気企業である Pinduoduo が、「1000 億...

人と会話できる財務管理AIがバンドカンファレンスでデビュー。誰かが1時間半も話していた。

「こんにちは。投資したいお金があります。期待収益は 6 ~ 10 ポイントです。1 年間投資したいと...

SEO担当者が求職時に示すべき3つのスキル

Baidu 検索エンジンの継続的な変更により、今日のウェブサイトの構築と運用は過去に比べて大きな変化...

SEO 起業プロジェクトが多数あるため、Weikebaba SEO に参加してみてはいかがでしょうか。

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますSEO は...

中小規模のウェブマスターの皆様、地方の小規模ウェブサイトで年間150万元を稼ぐ4つの方法をご紹介します。

Discuz! 愛好家が4月15日に報告(文/ウェブマスター Ajian)今日、あるウェブマスターが...

クラウドコンピューティングの10年: インターネット大手の勢力争いと生死をかけた闘い

2009年、第1回「中国クラウドコンピューティングカンファレンス」が北京で開催されました。 「中国」...

PhoenixNAP と secureservers の簡単な紹介

PhoenixNAP は、米国アリゾナ州にあるフェニックス データ センターの通称で、その事業は 1...

ウェブマスターネットワークからの毎日のレポート:出会い系サイトの生死状況 Alibaba Cloud Searchがリリースされました

1. 春節期間中、宅配便会社は荷物が多すぎるため、通常に戻るまで1週間ほどかかる「大晦日にネットで服...

トップ SEO 戦略 - Google の 1 ページ目に目立つ

ジョン・ログネルド更新日: 2007 年 5 月 11 日午後 12:00 (東部標準時)翻訳:方林...

「外部リンク判定について語る」に続き、SEO編集者は外部リンク専門家に代わり人気採用になれるのか?

百度が外部リンクを取り締まるために政策を絶えず調整してきたこの2年間でさえ、私たちがインターネット企...

SEO検索するとなぜチベタン・マスティフが表示されるのでしょうか? SEOとチベタン・マスティフの関係は何ですか?

今日、たまたまSEOを検索して、最新のSEOインデックスについて知りました。鄭州SEO老峰を驚かせた...