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 デバイスの強化
>>: クラウド開発に関する考察: どのクラウド開発戦略が正しい選択でしょうか?
Nutanix は本日、非構造化データ ストレージ製品である Objects と Files 向けの...
テスト用に globalfrag.com の CN2 ネットワーク ライン KVM 仮想 VPS を...
私は長年マーケティングプロモーションに携わってきました。毎年、商品プロモーションに対する理解は前年よ...
企業がパブリッククラウドを従来のデータセンターのように扱うと、間違いなく過剰支出に直面することになり...
楽山市の20代前半の若者3人が個人的にネットワークサーバーを設置し、人気のオンラインゲーム「Lege...
今年 3 月以来、ウェブマスターたちは Baidu が開始した新機能、Baidu Share の「い...
Maple-hosting は 2008 年に設立された民間ホスティング会社で、オランダのデータ セ...
海外メディアの報道によると、英国、米国、フランス、ドイツで実施された仮想化調査では、サーバーの総数の...
ウェブサイトの最適化は、コンテンツ、外部リンク、内部リンクの3つのカテゴリに過ぎません。オリジナルの...
私は昨年の 5 月に初めてブログで onrahost を紹介しました。onrahost は 2011...
従来のオンプレミス データ センターはまだ存在していますが、かつてそこで主流だったワークフローは急速...
hostens.eu はつい最近設立されたばかりなので、あまり知られていない方も多いかもしれません。...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますこのような...
本当に低価格のVPSと格安サーバーを提供しているcontabo GmbHを再度お勧めします。cont...
企業のデータが単一のデータセンターまたはクラウドに保存されている場合、データ管理は困難になります。企...