ラフトアルゴリズムは、一貫性アルゴリズムを分散します

実用的なアプリケーションでは、遭遇した分散システム、整合性の問題のために、業界では、多くの古典的な分散コンセンサスアルゴリズムを生産している、以前に分散コンセンサスアルゴリズムのプロジェクトは、多くの場合、2PCとパクシあり、唯一のいかだのためのアルゴリズムを知っています名前、今日に至るまで、前に理解していなかっ慎重に、とチャットする同僚が、突然、何でパクシといかだの違いを尋ねましたか?なぜ私たちのプロジェクトは非常に多くの問題を作るパクシに使用し、いかだアルゴリズムを使用するかどうかを検討していましたか?私は、ラフトが分散データベース・ストレージ・システムに適用されるべきかについて考えたことはありませんので、この質問は、私は、それに答えていません。
いかだアルゴリズム、唯一2013年に出版されたが、広く使われている、とさえ主流の分散コンセンサスアルゴリズムの一つとなっているが。
筏の下の基本的な原理は、以下のアルゴリズムを記録した:
それは、同様のパクシ、3つの役割、すなわち、リーダー(リーダー)、フォロワー(フォロワー)、候補者(候補者)があります。これはリーダー的な役割、クライアントの要求を受信するための責任があり、これらのログを適用する際に、他のノードと他のノードに通知するために、ログをコピーして安全である。候補者の選挙リーダーの役割の役割、役割は候補者のリーダーやフォロワーを応答しますリクエスト。
ラフトアルゴリズムは3比較的独立したサブ問題が存在する:リーダーシップの選挙、複製を記録し、セキュリティ・メカニズム。
リーダーシップの選挙の
選挙の主な戦略は:リーダーは、定期的にハートビートパケットのフォロワーを送信します。(リーダーがダウンしているノードがあると仮定)フォロワーこの時間内に受信されないハートビートのリーダーがあればそれぞれのフォロワーは、ランダムなキャンペーンのタイムアウトを設定して、その後、フォロワーは、候補となるキャンペーン期間を入力します。
フォロワー後のノードが候補になった場合、それは他のノードにポーリング要求を作成し、ノードの半数以上が応答するかどうかを投票する要求を受信したノードは、このその後、クラスタ全体の応答になります役割ノードはリーダーのための候補者によって変換されます。それ以来、リーダーが定期的にハートビートパケットのフォロワーを送信し続けます。
上記の方針に基づき、複数の候補を含むシーンのために、あなただけが最大の投票数と同じ状況が再選択されますマスターを取得する必要があります。一般的には、各ノードのタイムアウト一貫性のない、より多くの確率ノードの再選挙は主のではありませんがあります。

ログのレプリケーション
の一貫性ラフトアルゴリズムは、ログのレプリケーションによって保証され、プロセスは次のとおりです。
(1)クライアント主導の変更操作は、クラスタリーダーに記録されています。ログに記録されたコミットされていない変更の場合。
(2)リーダーレプリケーションログフォロワーをすべてのノードが。リーダーはフォロワーノード応答の半分以上を受け取った後、変更がコミットされます。
(3)リーダーフォロワーは彼らがまた変更をコミット気づくでしょうすべてのこの時間は、すべてのノードの値が一致しています。
異常なシナリオでは、レプリケーションプロセスがログログの競合が生成されます。
セキュリティ:
要約されるように、以下の記事を参照してください。
https://github.com/maemual/raft-zh_cn/blob/master/raft-zh_cn.md

おすすめ

転載: www.cnblogs.com/zhaozg/p/11403331.html