開発作業において、分散キャッシュ高可用性ソリューション(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 レポート: ハイブリッド クラウドまたはマルチクラウドを使用するとパフォーマンス目標を上回ることができます
I. はじめにIT ビジネスは急速に発展し、ビジネス データは急増し、ビジネス ニーズは急速に変化し...
人工知能、クラウドコンピューティング、モノのインターネット、スマート端末、ビッグデータなどの新世代情...
WLS (weloveservers) がウェブサイトをリニューアルした後、2 回目のプロモーション...
1 つのクラウドですべてのアプリケーションを管理できるわけではありません。私たちのほとんどはマルチク...
dwidc、ビッグネットワークデータ、「中華人民共和国付加価値電気通信事業許可証」番号:クラウドライ...
中国の SEO 業界で働いているウェブマスターは数え切れないほどいます。 seowhy、moonse...
広告に関しては、参考までにいくつかの経験談をシェアさせていただきました。今日はいくつかのポイントを皆...
チャイナタイムズ(記者 袁国利)最近、共同購入ウェブサイトがベトナムへの無料旅行を獲得し、ブラインド...
ナレーション:Guang.com 創設者 Bai Ya 編集:iTianxia.com最近ネット上で...
著者: 王冠雄1日の売上高は350億元、取引総数は1億7000万件、顧客平均支出額は205元。モバイ...
記者は昨日、「69元DIYケーキ」のグループ購入券を無事に購入しました。従業員の給与や商店への支払い...
今回、Hostus はプロモーション用に、コストパフォーマンスに優れた 2 つの VPS を用意しま...
vpsdime は英国で VPS サービスを展開しており、大容量メモリ、マルチコア、広帯域幅、Ope...
ライブストリーミング電子商取引の司会者の「複占」構造が緩み、ライブストリーミング電子商取引の「ナンバ...
profitserver の公式デフォルトは、すべての VPS が無制限のトラフィックと 100M ...