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 デバイスの強化
>>: クラウド開発に関する考察: どのクラウド開発戦略が正しい選択でしょうか?
[[379838]] [51CTO.com クイック翻訳] エッジ コンピューティングは、より広範な...
新型コロナウイルス感染症のパンデミックにより、企業のクラウド利用方法が明白な形でも隠れた形でも変化し...
最近、上海テレコムのユーザーは、一部の海外ウェブサイトのアクセス速度がどんどん遅くなり、多くのユーザ...
クラウド コンピューティングの普及により、企業のビジネスのやり方は変化しました。この変革は避けられず...
毎日大量の検索があるターゲットキーワードとは異なり、ロングテールキーワードは毎日検索される数が非常に...
Zheye IO: 10 月のプロモーション、全アイテムが 20% オフ、更新時も同じ価格、VPS ...
デジタル化の波に後押しされ、安徽省合肥市にある公立全日制総合大学である安徽国際ビジネス職業学院は、大...
現在、カウントダウンは、新製品の発表、大規模な展示会、プロモーション活動、映画やテレビドラマの発表な...
良好なネットワーク接続を持つアジアの女の子を見つけるのはそれほど難しいことではありません。お金を払え...
最近のテクノロジー業界で最もホットな流行語は「デジタルトランスフォーメーション」です。これは、企業が...
エッジ コンピューティングが運用と保守に与える影響は相互に関連しており、次のようにまとめることができ...
Linode は Akamai に買収された後、ヨーロッパにいくつかの新しいデータセンターを追加しま...
中国電子商取引研究センターは4月27日、2012年第1四半期時点で、閉鎖された共同購入サイトを除いて...
zxhost、この会社が何年に設立されたかは明らかではありませんが、ドメイン名は2007年に登録され...
以前、フリーランサーとして、私はリラックスした仕事生活を切望していました。2010年に仕事を始めてか...