開発作業において、分散キャッシュ高可用性ソリューション(Redis キャッシュ高可用性ソリューションの構築)の場合、Redis マスタースレーブアーキテクチャの高可用性はどのように確保されますか? Redis Sentinel は、Redis に高可用性ソリューションを提供する分散システムであることがわかっています。では、Redis サービス展開のセンチネル モードの主な原則と、それが解決する問題は何でしょうか。そこで私は関連する問題を整理するために時間を費やしました。この記事を読んだ後、あなたもその技術を他の人と共有できるようになると信じています。 O(∩_∩)O ハハハ〜 0. 問題の準備センチネル モードについて説明する前に、まずアプリケーションの問題、つまり Redis サービス ホストがクラッシュするケースを見てみましょう。 実際の使用では、マスターがクラッシュする可能性があります (書き込みサービスがなくなり、読み取りサービスのみになります)。サービスの可用性を確保したい場合は、他のスレーブ ノードの 1 つをマスター ノードとして選択し、サービス機能を継続的に提供する必要があります。 主なアクションは次のように抽象化されます。
いくつかの問題があります:
実際、センチネルメカニズムを導入することで、上記の問題を非常にうまく解決できます。 Sentinel - Redis クラスター 1. Sentinel とは何ですか?Sentinel は Redis の高可用性ソリューションです。1 つ以上の Sentinel インスタンスで構成される Sentinel システムは、任意の数のマスター サービスとこれらのマスター サーバーの下にあるすべてのスレーブ サービスを監視し、監視対象のマスター サービスがオフラインになった (サービス提供が不可能になった) ときに、オフライン マスター サーバーの下にあるスレーブ サーバーを新しいマスター サーバーに自動的にアップグレードできます。 Sentinel の役割を要約すると次のようになります。
マスターとスレーブが正常に動作しているかを常時チェック(マスター生存検出、マスターとスレーブの動作状態検出)
監視対象サーバーで問題が発生すると、他のセンチネルとクライアントに通知が送信されます。
障害が発生したマスターをスレーブから切断し、スレーブを新しいマスターとして選択し、他のスレーブを新しいマスターに接続して、クライアントに新しいサーバー アドレスを通知します。 注: Sentinel も Redis サーバーですが、データ サービスは提供しません。通常、設定されるセンチネルの数は奇数です。 2. Sentinelの仕組み以下では、主に、フェイルオーバー プロセス中に Sentinel が実行する 3 つの段階について説明します。 2.1.クラスター監視ステップ1: Sentinel 1がRedisクラスターに接続する
クラスター監視 ステップ2: Sentinel 2が参加した後
クラスター監視 ステップ3: Sentinel 3が参加した後
クラスター監視 簡単な要約:
2.2.メッセージ通知1) センチネルノードは、マスター/スレーブノードによって確立されたcmd接続を通じて動作ステータスを取得します。 2) フィードバックを受け取った後、SentinelはSentinel内で情報を伝達します。 メッセージ通知 2.3.フェイルオーバー厳密に言えば、フェイルオーバーは障害判定とフェイルオーバーの 2 つのステップに分けられます。 Q1: ノードに障害があるかどうかをどのように判断しますか?
マスターノードが失敗するまで、センチネルは sdown を報告し、同時に、このセンチネルはマスターノードがハングアップしたことを知らせるメッセージを他のセンチネルにも送信します。送信されるコマンドは sentinel is-master-down-by-address-port です。
残りのセンチネルも、受け取った情報を送信し、コマンド sentinel is-master-down-by-address-port を自身のイントラネットに送信して、sentinel is-master-down-by-address-port を送信した最初のセンチネルが、その通りで、この男は確かに死んでいると言っていることを確認します。
1 つのセンチネルがマスター ノードがダウンしていると判断した場合、そのノードは sdown としてマークされ、センチネルの半数がダウンしていると判断した場合、そのノードは odown としてマークされます。 1 つのセンチネルがマスター ノードがダウンしていると判断した場合、それは主観的ダウン (sdown) と呼ばれ、半数以上のセンチネルがマスター ノードがダウンしていると判断した場合、それは客観的ダウン (odown) と呼ばれます。 Q2: フェイルオーバーを実行するにはどうすればいいですか? 1) まず、センチネルはフェイルオーバーを処理するセンチネルリーダーを選出します 今回使用される選出方法は、以前にも導入されたRaftプロトコルです。興味のある学生は、コンセンサスアルゴリズムRaftの簡単な入門をご覧ください。 2) 次に、センチネルリーダーはスレーブノードの1つをマスターノードとして選択します。 主なルール:
上記の優先事項が一貫している場合は、他の優先事項も考慮されます。
スレーブ 1 のオフセットが 50 で、スレーブ 2 のオフセットが 55 の場合、センチネルはスレーブ 2 を新しいマスター ノードとして選択します。
これは職場の年功序列制度に似ており、つまり、ルニッドの作成時間によって判断すると、作成時間が早い人が最初に昇進します。 3) データ転送
3. 結論Redis のマスタースレーブレプリケーション機能には「マスタースレーブレプリケーションは高可用性の礎」という格言があり、高可用性を実現するにはセンチネルとクラスターが不可欠です。 3.1 センチネルの役割
マスターとスレーブが正常に動作しているかを常時チェック(マスター生存検出、マスターとスレーブの動作状態検出)
監視対象サーバーで問題が発生すると、他のセンチネルとクライアントに通知が送信されます。
障害が発生したマスターをスレーブから切断し、スレーブを新しいマスターとして選択し、他のスレーブを新しいマスターに接続して、クライアントに新しいサーバー アドレスを通知します。 3.2 センチネルの仕組み
マスターが Sentinel の PING コマンドに対して再度有効な応答を返すと、マスターの主観的なオフライン ステータスは削除されます。
マスターがオフラインであることに同意するセンチネルが十分にいない場合、マスターの客観的なオフライン ステータスは削除されます。
|
<<: YonSuite:中国のSaaS業界で「リーダー」の役割を果たすことができるか?
>>: Google DevOps レポート: ハイブリッド クラウドまたはマルチクラウドを使用するとパフォーマンス目標を上回ることができます
レポートの概要SaaS はどこから来て、なぜ誕生したのでしょうか?クラウド コンピューティングの概念...
どの業界であっても、ユーザーの悩みや痛みを解決できれば、お金を稼ぐことに不安を感じることはありません...
ページ最適化は SEO 最適化における最も基本的な内容であり、焦点でもあります。しかし、多くのウェブ...
A5ウェブマスターネットワーク(www.admin5.com)は4月4日、中国のビットコイン取引プラ...
現在、百度は再びアルゴリズム調整の特別な時期を迎えています。SEOをうまく行うには、またウェブサイト...
台湾サーバーは、香港とマカオを除いて、物理的に中国本土に最も近いです。そのため、台湾サーバーの高速性...
わずか 12 か月前、「ジェネレーティブ デザイン人工知能」は、ガートナーの新興テクノロジーのハイプ...
onetechcloudのUS cn2 gia vps特別イベントでは、月払いで20%割引、四半期払...
holderhost.com の openvz 用大容量メモリ VPS をご紹介します。サーバー構成...
SEO はますます複雑になっているため、多くの経営者は、単純な SEO を使用して Web サイトを...
多くのウェブサイトがBaiduプロモーションを行っています。この作業は非常に複雑に思えるため、多くの...
Softshellwebはイギリスの会社で、現在はドメイン名、仮想ホスト、VPSを主な事業としており...
奇妙な現象が起きているサイトがあります。ウェブサイトのキーワードランキングは依然として検索結果の 1...
最近、Xiaomiは正式にダブル12の最終戦レポートを発表しました。これは、今年の2つの主要な電子商...
Shuhost Technology (shuhost) は、8 月に香港データセンターの独立サーバ...