Redisの設計と研究ノートの3番目の部分の実装

章XVIセンチネル(センチネル)

1.Sentinel(センチネル)され、高可用性ソリューションのRedis:センチネルSentinelシステムは、マスターの1つ以上のインスタンスで構成され、任意のサーバの数、ならびに以下のマスタサーバからのもの、マスターサーバーを監視し、でモニターすることができます新しいマスターサーバーからサーバーへのアップグレードマスターサーバーオフライン時に自動的に行。

D

2.オフライン時修士長く設定された上限よりも、Sentinelシステムは、マスター・フェイルオーバー・プロセスを実行します:
   1.まず、Sentinelシステムは、スレーブ・マスターを選択し、新しいスレーブマスタにアップグレードされます。
   彼らは奴隷の新しいマスターと呼ばれるように、すべてのスレーブが新しいマスター、フェイルオーバー操作の最後のコピーを開始するとき2.すべてのオリジナルのマスタースレーブの後Sentinelは、オーダーの新しいコピーを送信します。
   3.Sentinelモニターは、オリジナルのマスターの組立ラインオフされている、それがオンラインに戻っていたときに、それをスレーブに設定されています。
3.Sentinelに、本質的にちょうど運転の特別なモードでサーバーをRedisの。
ブート構成など4.Sentinel理解缶は:Sentinelは、ユーザーが指定した設定ファイルを読み込み、監視すべきマスターのインスタンスごとに、対応する構造体を作成し、さらに接続を作成し、接続するために、マスターの命令に加入します。
監視対象のマスター、マスターにコマンドを送信し、応答メッセージに従って現在の情報を取得するために一度10S INFOデフォルト5.Sentinel。返信データは、さらに等、スレーブマスター全ての情報を含むIP、ポートを含む、IDを含むマスター情報自体、役割とを含みます センチネルは、新しいスレーブ・マスター・表示された場合は、この新しいスレーブに対応する構造体のインスタンスを作成するだけでなく、スレーブコマンド接続とサブスクリプションへのアクセスへの接続を作成します。主10SデフォルトはINFOコマンドを送信し、スレーブは、コネクタをオフセットコピーコマンドを作成した後などのデータIPとポートID、役割、マスター、接続ステータス、優先順位を含む応答を受信します。

他のセンチネルにその存在をアナウンスするためにハローメッセージの送信チャネル:同じマスターサーバーとのSentinelサーバの複数の監視6.は、それらが2秒ごとにより__ __sentinelの周波数にサーバを監視するであろう。各もセンチネル__sentinelから__:こんにちは(接続が加入していない)センチネルによって送信された他のチャネル情報を受信し、その情報に基づいてセンチネル構造の別のインスタンスを作成し、接続を指示する
デフォルトで7センチネル意志1Sあなたはすべてに接続するためのコマンドを送信するには、pingコマンドのインスタンスを作成し、オンラインかどうかを判断するために返信するに従って。連続50,000ミリ秒(デフォルト)は、マスターセンチネル無効な返信に送信された場合、それはオフライン主観的にマークされます。マスターが主観的にオフラインとしてマークされている場合は、センチネルはオフライン目的としてマークされ、センチネル十分(オプション設定)をオフラインで決定される他から受信したら、マスターセンチネル、センチネルの他の監視に問い合わせを行います、そして、フェイルオーバー。
8.リーダー選挙Sentinelは:目的はオフラインマスターを決定した場合、その選挙フェイルオーバー操作にすべてのセンチネルセンチネルリードを監視します。特定のルール:
     1.すべてのオンラインSentinelは投票に適格となっています。
     2.センチネル選挙たびに、関係なく、すべての時代センチネル構成の成功があるかどうか1。の
     3時代内の構成では、すべてがセンチネルセンチネルは地元の指導者となるように設定されてチャンスを持っている、との完了後に設定することはできません変更。
     4.各マスターは、センチネルは客観入るダウンがローカルリーダーとして他のセット自体が必要になりますました。
     チームは5.Sentinelが最初の最初の務め来るのルールを設定している大手、彼らは拒否されます後、彼の初期の要求を送信するために投票しました。
     6.センチネルは、より多くの選挙の半分以上である場合、それはリーダー、または他再びになります。
9.選挙終了後、リーダーSentinelは、マスターフェイルオーバー操作の組立ラインオフされているだろう:
     すべてのスレーブ1.選択は新しいマスターのマスターとして、組立ラインオフされています。
     2.他のスレーブは、新しいマスターをコピーします。
     マスタースレーブに新しいマスターの組立ラインオフ3。
新しいマスター・アルゴリズムの10選挙:
     すべてのスレーブ1.リーダーSentinelは、オフラインのマスターになりますが、リストに保存され、その後、すべてのオフラインまたは切断スレーブを削除しています。
     彼は5秒以内にすべてを削除します。2.過スレーブセンチネルINFOコマンドに応答しませんでした。
     すべてのスレーブのマスタに接続3.削除は10で*ダウンした後、ミリ秒より切断オフラインになっています。
     スレーブマスタとして最高優先度に応じて選択した後、4センチネル。優先度が同じである場合は、最大値が選択されたコピーのオフセット。同じコピーがオフセットした場合、その後、最小限のIDを選択します。

おすすめ

転載: www.cnblogs.com/love17311706/p/12024652.html