インタビュアー:マスターの選択における Kafka と ES の違いは何ですか?

インタビュアー:マスターの選択における Kafka と ES の違いは何ですか?

Kafka と ES はどちらもビッグデータを処理するために使用されるミドルウェアです。 1つはメッセージミドルウェア(Kafka)の代表であり、もう1つはビッグデータ検索エンジン(ES)の代表です。ビッグデータはもちろん、Java分野でも幅広く利用されていますが、それらのリーダー選挙(マスターノードの選択)との関連性や違いは何でしょうか?次は一緒に見ていきましょう。

1. 基本概念

(1)カフカとは何か?

Kafka は LinkedIn によって開発および保守され、後に Apache Software Foundation の一部となった分散ストリーム処理プラットフォームです。これは主にリアルタイム データの処理用に設計されており、高スループットの分散パブリッシュ/サブスクライブ メッセージング システムです。

Kafka クラスターは次の要素で構成されます。

説明: 各ブローカーは Kafka インスタンスです (ブローカー 1 はメイン ブローカーであるコントローラーです)。ブローカーには複数のトピックがあり、トピックには複数のパーティションがあります。パーティションは、リーダー パーティションとフォロワー パーティションの 2 つのカテゴリに分かれています。

(2)ESとは何か?

ES は Elasticsearch の略で、オープンソースでスケーラビリティの高い分散型全文検索エンジンです。ほぼリアルタイムでデータを保存および取得でき、優れたスケーラビリティを備えています。数百台のサーバーに拡張でき、PB レベルのデータを処理できます。 Elasticsearch は Java で開発されており、Apache Lucene をコアとして使用してすべてのインデックス作成機能と検索機能を実装していますが、シンプルな RESTful API によって Lucene の複雑さが隠され、フルテキスト検索がシンプルになっています。

ES クラスターは次の要素で構成されます。

説明: ES クラスターにはマスター ノードが 1 つだけあり、その他はデータ ノードです (他のノード タイプもありますが、ここでは無視します)。マスター ノードはクラスター全体の作業を調整します。データ ノードには複数のシャードが格納され、各シャードはプライマリ シャードとレプリカ シャードの 2 種類に分かれています (Kafka のパーティションの概念に似ています)。

2. KafkaとESマスターの選択

Kafka リーダー選出はブローカー内のコントローラーの選択を指し、ES リーダー選出はクラスター内のマスターの選択を指します。これら 2 つは、Kafka の新しいバージョン (2.8 以降) と ES の新しいバージョン (7.0 以降) で関連しています。リーダー選出戦略は両方とも Raft アルゴリズムに基づいて実装されています

追記:もちろん、Kafka はこれを KRaft と呼んでおり、ES も Raft アルゴリズムに基づいて 2 段階の選択を拡張していますが、それらの基礎となるアルゴリズムはすべて Raft アルゴリズムです。

3. Raft アルゴリズムとは何ですか?

Raft アルゴリズムは分散一貫性アルゴリズムであり、主に分散システムでのデータ コピーの一貫性を実現するために使用されます。このアルゴリズムは、Paxos アルゴリズムのエンジニアリング実装です。その主な特徴は、比較的単純なアルゴリズムを通じて分散システムのデータの一貫性と高可用性を実現することです。

Raft アルゴリズムの核となるのは、選挙投票を通じて少数派が多数派に従うという原則 (多数決原則) です。半数以上の人がノードをリーダーとして投票すると、そのノードが新しいリーダーになります。

Raft アルゴリズムでは、分散システム内のすべてのノードがリーダー、フォロワー、候補の 3 つの役割に分割されます。これら 3 つの ID の変換は次のとおりです。

リーダー -> フォロワー: リーダーは、現在のシステムでより長い用語が出現したことを発見した場合、「退位」し、自ら退位してフォロワーになるという主導権を握ります。ここで、リーダーは次のようにして大きい方の項を見つけます。

  1. フォロワーにログ同期要求を送信すると、値はフォロワーの応答パラメータから取得されます。
  2. 新しいリーダーからハートビートまたはログ同期要求を受信しました。
  3. 任期が長い候補者からの選挙運動の依頼を受けました。

フォロワー -> 候補: リーダーはフォロワーにまだ生きていることを知らせるために、定期的にハートビートを送信する必要があります。フォロワーが一定期間リーダーのハートビートを受信しない場合、そのステータスは候補者に切り替わり、現在の期間に選挙期間として 1 を追加し、そのポジションを埋めるための選挙を開始します。

候補者 -> フォロワー: 候補者の選挙中、次の 2 つの状況で候補者はフォロワーに返されます。

大多数が反対票を投じた。

選挙期間中に、任期が選挙期間以上であるリーダーからのリクエストを受信します。

候補者 -> リーダー: 候補者選挙中に、過半数が賛成票を投じた場合、候補者はリーダーに変わります。

候補者 -> 候補者: 候補者の選挙プロセスには時間制限があります。期限内に有効な結論(過半数の承認または拒否)に達しなかった場合は、候補者の地位は維持され、選挙期間が 1 増加され、新しい選挙ラウンドが開始されます。

4. ラフト選出プロセス

Raft アルゴリズムの選択プロセスを次の図に示します。

投票プロセスは次の 3 つあります。

候補者は元のリーダーに投票します:

  1. 用語が自分の用語より小さい場合は、それを拒否して最新の用語を返します。
  2. 用語が自身の用語より大きい場合、退位してフォロワーになり、フォロワー モードで要求を処理します。

候補者はフォロワーに投票します:

有効期限が過ぎている場合は、リクエストを拒否し、現在の有効期限に戻してください。

期間が自分の期間よりも長い場合は、最後の同期ログが十分に新しいかどうかを判断します。あなたのものより新しい場合は、その候補者に投票してください。あなたのものより新しくない場合は、拒否してください。

候補者は候補者に投票します:

リーダーの任期が自身の任期以上である場合、リーダーは投票に同意し、フォロワーにリクエストを返し、フォロワー モードでリクエストを処理します。

リーダーの任期があなたの任期より短い場合は、リクエストを拒否し、最新の任期で応答します。

各候補者は上記の投票に基づいて新しいリーダーを決定します。そのうちの 1 つが投票の半分以上を獲得した場合、そのノードが新しいリーダーに昇格し、このニュースを他のノードに同期します。そうでない場合は、新たな投票ラウンドが開始されます。連続投票を防止するため、新たな投票開始時にランダムな待機時間を設け、一定数の不投票後に棄権できる仕組みを設け、投票が円滑に完了するようにします。

<<:  エッジコンピューティングとデータサイエンス: IoT デバイスの強化

>>:  クラウド開発に関する考察: どのクラウド開発戦略が正しい選択でしょうか?

推薦する

クラウドネイティブなビッグデータプラットフォームのK8sベースを構築する方法

デジタル変革の加速に伴い、ビッグデータはビジネス管理の主な手段の1つとなり、ますます多くの業界がビッ...

旅行ウェブサイトのメールマーケティングでユーザーオンボーディングを改善するための6つのヒント

10日以上前、世界的に有名な旅行口コミサイト「トリップアドバイザー」からメールが届きました。このメー...

SEO最適化のための強力なツールであるBaidu Statisticsの5つの主要機能の詳細な説明

みなさんこんにちは、張柯です。今日は百度の統計ツールについてお話ししたいと思います。百度は統計ツール...

gigsgigscloud: スピードと高防御の両方を考慮した香港の高防御VDS、CN2高速ネットワーク+1Tbps DDoS防御+Jingdun CC防御、

gigsgigscloud には、速度、超高 DDoS 防御、CC 攻撃防御を特徴とする新しい香港 ...

検索エンジンにとって良いコンテンツとはどのようなものでしょうか?

Taobao の顧客になるには、SEO についてある程度知っておく必要があります。検索エンジンは記事...

JavaScript を使ってユーザーと検索エンジンを欺く 2 つのトリックを暴露

JS に関しては、検索エンジンに優しくないこの技術が、美しい Web ページ効果を生み出し、いくつか...

Fanyun:米国のcn2高防御クラウドサーバー、拡張クラウドディスクをサポート、50Gの高防御が付属、月額40元から

国内の業者「Fanyun」のロサンゼルスVPSには、cn2ネットワーク、拡張可能なクラウドディスク、...

ぜひコレクションしてください!人気の無料 Kubernetes ツールキット 50 選

Kubernetes はわずか 2 年で、コンテナ オーケストレーションの競争において徐々に優位に立...

SEO 担当者の皆さん、転職しないでください。月に 10,000 元稼げる仕事はたくさんあります。

【実名紹介】SEOには専門家と初心者の区別はありません。インターネットは大きな舞台です。最近、eコマ...

Yaohe TechnologyがSmart Retailに登場し、新小売時代のマーケティングテクノロジーについて説明

月収10万元の起業の夢を実現するミニプログラム起業支援プラン2018年9月20日、上海ドラゴンドリー...

天猫スーパーブランドデー:共同マーケティングを知的財産に変えるマーケティング革命

最近、改めてTmallの「かっこよさ」に感動しました。ひらひらと舞う雪の結晶が、無限ループするGIF...

バイトダンスとテンセントの公然かつ秘密の戦い

つい最近、西瓜動画は今日頭条プラットフォームに「テンセントの著作権侵害の申し立てに基づき、広州裁判所...