インタビュアー:マスターの選択における 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 デバイスの強化

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

推薦する

中国のエッジクラウド市場規模は2022年後半も成長を続け、前年比50%を超える見込み

最近、International Data Corporation(IDC)が発表した最新の「中国エ...

クラウドベースの CI/CD プラットフォームを選択するにはどうすればよいでしょうか?

[[413408]]この記事はWeChat公式アカウント「新チタンクラウドサービス」から転載したもの...

Yalo-2.5 USD / 512M RAM / 100G HDD / 10Tフロー

yalo.io は、2009 年に設立されたと主張しています (実際の状況は確認できません)。Goo...

キューブクラウド:全品15%オフ、香港3ネットワークCN2 GIA(300M帯域幅)/米国CN2 GIA/米国CUVIP、遅延のない高速VPS

Cubecloudの毎年恒例のダブル11イベントが始まりました。サイト全体で生涯15%オフの継続割引...

購入したトラフィックを価値あるものにするために、APPプロモーションチャネルの効果を5段階で最適化します。

プロモーション期間中にトラフィックを有効活用し、ユーザーが購入したトラフィックの価値を最大化するには...

クラウドで生産性を向上させる方法

調査によると、IT プロフェッショナルの約 80% が、クラウド プラットフォームへの移行によって生...

OpenLiteSpeed+PHP+MariaDB/MySQL+WordPress+LiteSpeedCache を構築するワンクリック スクリプト

WordPress は、更新が速く、プラグイン、テーマ、開発者が多数存在するため、現在、世界で最も人...

モバイル検索大手のレイアウト:商業化は有料ランキングに限定されており、複数の方法で前進する必要がある

モバイル検索大手のレイアウト: 商業化は有料ランキングに限定されており、複数の足でより速く動く必要が...

SEO 最適化担当者は、Web サイト構築技術の学習をどこから始めるべきでしょうか?

ご存知のとおり、ウェブサイトの運用と保守の作業員の仕事は、特に中小企業では比較的複雑です。総合的な資...

水利分野におけるクラウドデータベースの応用と探究

情報化時代の到来と情報技術の急速な発展により、データの相互接続と相互運用性が不可欠になりました。従来...

ユーザーの需要価値の表示と位置付け

SEO を行う人なら誰でも「コンテンツは王様、外部リンクは女王」ということわざを知っていますが、この...

ハイブリッド クラウド シナリオにおける BGP 冗長パス障害 - イベント レビュー

1 問題の背景これは、基本的なネットワーク運用と保守に関する事故レビューレポートです。歴史的な理由に...

Weibo 検索は従来の検索エンジンの挑戦者となるでしょうか?

引用: 最近、新製品にもっと注目しています。製品を体験した後は、他のメディアがこの製品を別の視点から...

中秋節と国慶節ゴールデンウィーク中にSEO作業を行う方法

SEO作業は継続的なものです。途中で長期間停止すると、ウェブサイトのランキングに影響します。中秋節や...

tripodcloud: 信頼性の高い米国の cn2 gia vps、12% 割引、3 つのネットワークへの直接接続 (China Telecom CN2 GIA\China Unicom AS4837\China Mobile CMI)

Tripodcloud は本当に変わったビジネスです。2001 年の設立以来、宣伝やプロモーションを...