高可用性ソリューションをRedisの

高可用性ソリューションをRedisの-センチネルクラスタ

                                免責事項:この記事はCC 4.0 BY-SAの著作権契約書に従って、ブロガーオリジナル記事です、元のソースのリンクと、この文を添付してください、再現。                           
                           
                                このリンクします。https://blog.csdn.net/sunhuiliang85/article/details/78361211

高可用性ソリューションをRedisの

A.用語集

 

 

II。マスタースレーブのレプリケーション

 

       Redisのマスターパターンデータは、マスタノードがあるノードから到達可能ではない場合を保護するために、スレーブノードの同期にマスタノードからコピーすることができます

バックアップトップに、そしてデータ(マスター・スレーブのレプリケーションは、最終的な一貫性を保証することができます)できるだけ失われないことを確認することができます。第二に、ノードは、マスタノード拡張を読み取ることができます

能力は、同時読み出し動作を大量にサポートすることができないマスタノードと、マスタノードは、ノードからある程度の圧力を共有することができます。

      コピーが直面する主な問題:

      1.プライマリノードに障害が発生した場合、手動でノードからメインノードに昇格する必要があり、マスタ・アドレスと再起動を変更するためにアプリケーション側に通知します

         ノードから新しい主ノードをコピーするためのアプリケーション、およびその他の必要なコマンド、全体のプロセスは、人間の介入を必要とします。

      2.マスターノードを書く能力が制限され、スタンドアローンです。

      3.主記憶容量が限られたスタンドアロンノードです。

III。元のフェイルオーバ

      1.プライマリノードに障害が発生した後、マスターノードの障害に接続されたクライアント、接続障害がノードからマスターノードをコピーする割り込み2によって引き起こされます。

 

    2.マスターノードが正常に起動しない場合、あなたはノード(スレーブ-1)から選択する必要があり、新しいプライマリセクションになるために誰のコマンドslaveofその実装

       元のノード(スレーブ1)から3は、アプリケーション側を再起動し、新しいマスターノード、アプリケーション側のマスタノード更新情報となります。

       4.別のクライアントコマンドがマスターノードから新しいノードをコピーする(スレーブ2)

       元のプライマリノードが復元される後5は、新しいマスターノードにコピー

 

四.Redisセンチネル高可用性

 

    プライマリノードに障害が発生した場合、RedisのSentinelは自動的に完全な障害検出およびフェイルオーバー、およびインフォームアプリケーション側、真の高可用性を可能にすることができます。

RedisSentineは、いくつかのRedisのセンチネルノードとデータノードを含む分散アーキテクチャであり、各ノードは、ノードのデータをセンチネルであろうと

それはノードが到達不能である見つけたときに、残りのセンチネルノードの監視、および、オフラインのノードを識別するだろう。フラグが「マスターノード」であり、それは意志場合

その他のセンチネルノード「協議」、センチネルリンパ節のほとんどは、プライマリノードが到達不能であると考えられているとき、彼らは完全にセンチネルノードを選出します

自動作業へのフェイルオーバーが、これはRedisのアプリケーション側へのリアルタイム通知に変更されます。全体のプロセスは自動的に行われ、解決するために人間の介入を必要としません。

高可用性のRedisの問題。

       Redisのセンチネルセンチネルは複数のノードが含まれ、これはまた、2つの利点をもたらします:

       1.故障判定を効果的に誤検出を防止することができる、センチネルが一緒ノード複数のノードによって実行されます。

       2.センチネルノードセットは、個々のセンチネル節は、センチネルによってノードのセット全体利用できない場合であってもその結果、いくつかのセンチネル節から構成されています

           しかし、それは堅牢です。

       RedisのSentinelは、次の機能があります。

       1.モニタリング:センチネルノードデータRedisのは、定期的に検出し、残りのセンチネルノード到達可能かどうか

       2.通知:センチネル結果は、アプリケーション側に通知するために失敗します。

       前記マスターノードのフェイルオーバー:マスターノードと正しい主従関係のその後のメンテナンスに昇格したノードから達成します。

       4.構成が提供する:RedisSentinel構造のうち、一度にクライアントを開始接続センチネル節は、情報を取得するために、そこからセット、マスターノードです。

 

ファイブ。Redisのセンチネル・トポロジー

 

 

 

六。Redisのセンチネルリンパ節の検出および監視メカニズム

Redisのセンチネル発見し、定期的なモニタリングを通じて、各ノードの完了を監視3つのタスク:

    1 10秒ごとに、各Sentinelは、マスタノードとスレーブノードの送信コマンド情報に最新のトポロジを取得します。

    2. 2秒ごとに、データノードにそれぞれ_sentinel_ Redisのセンチネル節:送信ノードは、ハローチャネル用Senitnelマスタノードを決定します。

       センチネルリンパ節および現在の情報、および各センチネルノードは、彼らの主な祭りとしてだけでなく、他のセンチネルリンパ節について学ぶために、チャネルにサブスクライブします

       決意ポイント。このタスクは、次の2つのタスクを完了するためにタイムアウトすることができます。

       (1)新しいセンチネルノードの発見:マスターノード_Sentinel_に加入者:追加情報は、ハローセンチネル節。あなたは新規参入している場合

                センチネル節、一緒に格納されたセンチネルノード情報、及び変更センチネルノードとの接続を作成します

       マスターノードのステータス(2)センチネルノード間の交換だけでなく、オフライン目的の後ろのリーダー選出などによると、

    3. 1秒ごと、各センチネル節、センチネルノードを残りのノードがマスタノードにpingコマンドを送信し確認するためのハートビートを行います

       現在のノードが到達可能です。そして、マスターノードは、残りのセンチネルからのノードは、各ノードのためのモニターを達成するために、接続を確立しました。定期的なタスク

       これは、ノード障害の決意のための重要な基礎です。

七。Redisのセンチネル展開のヒント

    1.Sentinelノードは、単一の物理マシン上に展開するべきではありません。

    2.展開少なくとも3つのノード、及び奇数センチネル

    3.のみセンチネル、または提案の各マスターノードの構成は、センチネルセンチネルノードセットを論じ監視が同じものである場合に

       メインサービスノードセットは、複数の番組の、次に使用する、そうでなければスキーム2。 

 

八Redisのクラスター|。データパーティション  

 

Redisのデータパーティション:RedisCluster仮想パーティション溝、キーは、すべてのスロット0から16383までの整数ハッシュ関数にマッピングされ

式:スロット= CRC16(キー)&16383。各ノードがマッピングされているスロットと鍵データチャネルの部分を維持する責任があります。

 

Redisのパーティションの仮想スロットの特徴:

難易ノードの伸縮を簡素化1データとデカップリングノードとの間の関係、

2.ノード自体は、マッピング関係スロットなしクライアント・エージェント・サービスまたはメンテナンスパーティションのメタデータスロットを維持します

3.クエリのノードとの間のマッピングをサポートして溝、シーンのデータをルーティング、オンライン膨張と収縮のためのキー。
----------------
免責事項:この記事は、元の記事のCSDNブロガー「アベニューの簡素化」で、CC 4.0 BY-SAの著作権契約書に従って、再現し、元のソースとのリンクを添付してくださいこの文。
オリジナルリンクします。https://blog.csdn.net/sunhuiliang85/article/details/78361211

おすすめ

転載: www.cnblogs.com/yaoyangding/p/12127391.html