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

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

推薦する

知っておくべきエッジコンピューティングの誤解

[[379838]] [51CTO.com クイック翻訳] エッジ コンピューティングは、より広範な...

COVID-19パンデミック中のクラウドコンピューティング市場の動向

新型コロナウイルス感染症のパンデミックにより、企業のクラウド利用方法が明白な形でも隠れた形でも変化し...

上海テレコムの海外ウェブサイトへのアクセス速度制限が疑問視されている

最近、上海テレコムのユーザーは、一部の海外ウェブサイトのアクセス速度がどんどん遅くなり、多くのユーザ...

2021年に企業が知っておくべき6つのクラウドコンピューティングのトレンド

クラウド コンピューティングの普及により、企業のビジネスのやり方は変化しました。この変革は避けられず...

ロングテールキーワードを体系的に最適化する方法

毎日大量の検索があるターゲットキーワードとは異なり、ロングテールキーワードは毎日検索される数が非常に...

Zheye: ゴールデン 10 月、20% オフ プロモーション、VPS+サーバー: 日本\香港\シンガポール\米国

Zheye IO: 10 月のプロモーション、全アイテムが 20% オフ、更新時も同じ価格、VPS ...

安徽国際ビジネス専門学校のクラウド変革が明らかに:PC島からクラウド大陸への変革

デジタル化の波に後押しされ、安徽省合肥市にある公立全日制総合大学である安徽国際ビジネス職業学院は、大...

ブランドマーケティングプロモーション:ポスターのデザイン方法は?

現在、カウントダウンは、新製品の発表、大規模な展示会、プロモーション活動、映画やテレビドラマの発表な...

iniz-2.25ポンド/シンガポール/512mメモリ/50gハードディスク/800gフロー

良好なネットワーク接続を持つアジアの女の子を見つけるのはそれほど難しいことではありません。お金を払え...

デジタルトランスフォーメーションでDevOpsを保護する方法

最近のテクノロジー業界で最もホットな流行語は「デジタルトランスフォーメーション」です。これは、企業が...

エッジコンピューティングが業務に与える影響

エッジ コンピューティングが運用と保守に与える影響は相互に関連しており、次のようにまとめることができ...

Linodeはどうですか?イタリアのミラノデータセンターのクラウドサーバーの詳細なレビュー

Linode は Akamai に買収された後、ヨーロッパにいくつかの新しいデータセンターを追加しま...

報告書によると、私の国にある3,620の共同購入ウェブサイトの中で、24のクーポンに対する苦情が最も多いそうです。

中国電子商取引研究センターは4月27日、2012年第1四半期時点で、閉鎖された共同購入サイトを除いて...

zxplay-$6.93/KVM/1G メモリ/40GSSD/無制限 G ポート

zxhost、この会社が何年に設立されたかは明らかではありませんが、ドメイン名は2007年に登録され...

企業でSEOを初めて体験

以前、フリーランサーとして、私はリラックスした仕事生活を切望していました。2010年に仕事を始めてか...