Kafka と ES はどちらもビッグデータを処理するために使用されるミドルウェアです。 1つはメッセージミドルウェア(Kafka)の代表であり、もう1つはビッグデータ検索エンジン(ES)の代表です。ビッグデータはもちろん、Java分野でも幅広く利用されていますが、それらのリーダー選挙(マスターノードの選択)との関連性や違いは何でしょうか?次は一緒に見ていきましょう。 1. 基本概念(1)カフカとは何か?Kafka は LinkedIn によって開発および保守され、後に Apache Software Foundation の一部となった分散ストリーム処理プラットフォームです。これは主にリアルタイム データの処理用に設計されており、高スループットの分散パブリッシュ/サブスクライブ メッセージング システムです。 Kafka クラスターは次の要素で構成されます。
(2)ESとは何か?ES は Elasticsearch の略で、オープンソースでスケーラビリティの高い分散型全文検索エンジンです。ほぼリアルタイムでデータを保存および取得でき、優れたスケーラビリティを備えています。数百台のサーバーに拡張でき、PB レベルのデータを処理できます。 Elasticsearch は Java で開発されており、Apache Lucene をコアとして使用してすべてのインデックス作成機能と検索機能を実装していますが、シンプルな RESTful API によって Lucene の複雑さが隠され、フルテキスト検索がシンプルになっています。 ES クラスターは次の要素で構成されます。
2. KafkaとESマスターの選択Kafka リーダー選出はブローカー内のコントローラーの選択を指し、ES リーダー選出はクラスター内のマスターの選択を指します。これら 2 つは、Kafka の新しいバージョン (2.8 以降) と ES の新しいバージョン (7.0 以降) で関連しています。リーダー選出戦略は両方とも Raft アルゴリズムに基づいて実装されています。
3. Raft アルゴリズムとは何ですか?Raft アルゴリズムは分散一貫性アルゴリズムであり、主に分散システムでのデータ コピーの一貫性を実現するために使用されます。このアルゴリズムは、Paxos アルゴリズムのエンジニアリング実装です。その主な特徴は、比較的単純なアルゴリズムを通じて分散システムのデータの一貫性と高可用性を実現することです。
Raft アルゴリズムでは、分散システム内のすべてのノードがリーダー、フォロワー、候補の 3 つの役割に分割されます。これら 3 つの ID の変換は次のとおりです。 リーダー -> フォロワー: リーダーは、現在のシステムでより長い用語が出現したことを発見した場合、「退位」し、自ら退位してフォロワーになるという主導権を握ります。ここで、リーダーは次のようにして大きい方の項を見つけます。
フォロワー -> 候補: リーダーはフォロワーにまだ生きていることを知らせるために、定期的にハートビートを送信する必要があります。フォロワーが一定期間リーダーのハートビートを受信しない場合、そのステータスは候補者に切り替わり、現在の期間に選挙期間として 1 を追加し、そのポジションを埋めるための選挙を開始します。 候補者 -> フォロワー: 候補者の選挙中、次の 2 つの状況で候補者はフォロワーに返されます。 大多数が反対票を投じた。 選挙期間中に、任期が選挙期間以上であるリーダーからのリクエストを受信します。 候補者 -> リーダー: 候補者選挙中に、過半数が賛成票を投じた場合、候補者はリーダーに変わります。 候補者 -> 候補者: 候補者の選挙プロセスには時間制限があります。期限内に有効な結論(過半数の承認または拒否)に達しなかった場合は、候補者の地位は維持され、選挙期間が 1 増加され、新しい選挙ラウンドが開始されます。 4. ラフト選出プロセスRaft アルゴリズムの選択プロセスを次の図に示します。 投票プロセスは次の 3 つあります。 候補者は元のリーダーに投票します:
候補者はフォロワーに投票します: 有効期限が過ぎている場合は、リクエストを拒否し、現在の有効期限に戻してください。 期間が自分の期間よりも長い場合は、最後の同期ログが十分に新しいかどうかを判断します。あなたのものより新しい場合は、その候補者に投票してください。あなたのものより新しくない場合は、拒否してください。 候補者は候補者に投票します: リーダーの任期が自身の任期以上である場合、リーダーは投票に同意し、フォロワーにリクエストを返し、フォロワー モードでリクエストを処理します。 リーダーの任期があなたの任期より短い場合は、リクエストを拒否し、最新の任期で応答します。 各候補者は上記の投票に基づいて新しいリーダーを決定します。そのうちの 1 つが投票の半分以上を獲得した場合、そのノードが新しいリーダーに昇格し、このニュースを他のノードに同期します。そうでない場合は、新たな投票ラウンドが開始されます。連続投票を防止するため、新たな投票開始時にランダムな待機時間を設け、一定数の不投票後に棄権できる仕組みを設け、投票が円滑に完了するようにします。 |
<<: エッジコンピューティングとデータサイエンス: IoT デバイスの強化
>>: クラウド開発に関する考察: どのクラウド開発戦略が正しい選択でしょうか?
最近、International Data Corporation(IDC)が発表した最新の「中国エ...
[[413408]]この記事はWeChat公式アカウント「新チタンクラウドサービス」から転載したもの...
yalo.io は、2009 年に設立されたと主張しています (実際の状況は確認できません)。Goo...
Cubecloudの毎年恒例のダブル11イベントが始まりました。サイト全体で生涯15%オフの継続割引...
プロモーション期間中にトラフィックを有効活用し、ユーザーが購入したトラフィックの価値を最大化するには...
調査によると、IT プロフェッショナルの約 80% が、クラウド プラットフォームへの移行によって生...
WordPress は、更新が速く、プラグイン、テーマ、開発者が多数存在するため、現在、世界で最も人...
モバイル検索大手のレイアウト: 商業化は有料ランキングに限定されており、複数の足でより速く動く必要が...
ご存知のとおり、ウェブサイトの運用と保守の作業員の仕事は、特に中小企業では比較的複雑です。総合的な資...
情報化時代の到来と情報技術の急速な発展により、データの相互接続と相互運用性が不可欠になりました。従来...
SEO を行う人なら誰でも「コンテンツは王様、外部リンクは女王」ということわざを知っていますが、この...
1 問題の背景これは、基本的なネットワーク運用と保守に関する事故レビューレポートです。歴史的な理由に...
引用: 最近、新製品にもっと注目しています。製品を体験した後は、他のメディアがこの製品を別の視点から...
SEO作業は継続的なものです。途中で長期間停止すると、ウェブサイトのランキングに影響します。中秋節や...
Tripodcloud は本当に変わったビジネスです。2001 年の設立以来、宣伝やプロモーションを...