この記事では、Redis の Sentinel モード (Sentinel) について理解し、Sentinel の動作メカニズムと Sentinel モードの構築方法を紹介します。
Redis Sentinel Sentinel モードは分散システムです。1 つのアーキテクチャで複数の Sentinel プロセス (進行状況) を実行できます。これらのプロセスはゴシップ プロトコルを使用して、マスター サーバーかどうかに関する情報を受信します。はオフラインであり、合意プロトコルを使用して、自動フェイルオーバーを実行するかどうか、およびどのスレーブ サーバーを新しいマスター サーバーとして選択するかを決定します。 [関連する推奨事項: Redis ビデオ チュートリアル ]
Redis の Sentinel システムは、複数の Redis サーバー (インスタンス) の管理に使用され、次の 3 つのタスクを実行します。
##監視
: Sentinel はマスター サーバーとスレーブ サーバーが正常に動作しているかどうかを常にチェックします。 -
通知
: 監視対象の Redis サーバーに問題が発生した場合、Sentinel は API を通じて管理者または他のアプリケーションに通知を送信できます。 -
自動フェイルオーバー
: マスター サーバーが正常に動作しない場合、Sentinel は自動フェイルオーバー操作を開始し、障害が発生したマスター サーバーのスレーブ サーバーの 1 つを新しいサーバーとしてアップグレードします。マスターサーバーに接続し、障害が発生したマスターサーバーの他のスレーブサーバーが新しいマスターサーバーを複製するように変更します。クライアントが障害が発生したマスターサーバーに接続しようとすると、クラスターは新しいマスターサーバーのアドレスもクライアントに返します。クラスタが障害が発生したサーバーを新しいプライマリ サーバーに置き換えることができること。 -
センチネルの動作メカニズム
各センチネルは、マスター、スレーブ、および既知の他のセンチネル インスタンスに 1 秒に 1 回程度 PING コマンドを送信します。
- ##PING コマンドに対する最後の有効な応答からの時間が、インスタンスの down-after-milliseconds オプションで指定された値を超えた場合、そのインスタンスはセンチネルによって主観的にオフラインとしてマークされます。
#マスターが主観的オフラインとしてマークされている場合、マスターを監視しているすべてのセンチネルは、マスターが実際に主観的オフライン状態に入ったことを 1 秒に 1 回確認する必要があります。
十分な数のセンチネル (構成ファイルで指定された値以上) が、マスターが指定された時間範囲内に実際に主観的オフライン状態に入ったことを確認すると、マスターは客観的にマークされます。オフライン 通常の状況では、各センチネルは、知っているすべてのマスターおよびスレーブに 10 秒ごとに INFO コマンドを送信します。 マスターがオフラインの場合、センチネルによって客観的にオフラインとしてマークされた場合、センチネルがオフライン マスターのすべてのスレーブに INFO コマンドを送信する頻度は、10 秒に 1 回から 1 秒に 1 回に変更されます。十分な数のセンチネルがマスターがオフラインであることに同意し、マスターの客観的なオフライン ステータスは削除されます。
マスターが再度センチネルの PING コマンドに有効な応答を返した場合、マスターの主観的なオフライン ステータスは削除されます。 センチネル モードの構築-
環境
master:127.0.0.1:6379 【初始化master】
slave:127.0.0.1:6380 127.0.0.1:6381
sentinel:127.0.0.1:26379 127.0.0.1:26380 127.0.0.1:26381
ログイン後にコピー
- 構成の変更:
ここでは redis のインストールを省略し、sentinel 構成ファイルを直接変更します。対応するフォルダー Redis6379-Redis6381
# 监控节点,且超过2个sentinel 任务故障,方可执行故障转移
sentinel monitor mymaster 127.0.0.1 6379 2
# 如果节点在 30000毫秒内未回应,就认为故障
sentinel down-after-milliseconds mymaster 30000
# 如果故障转移后,同时进行主从复制数为 1
sentinel parallel-syncs mymaster 1
# 故障转移的超时时间
sentinel failover-timeout mymaster 180000
sentinel deny-scripts-reconfig yes
ログイン後にコピー
開始コマンド
./src/redis-sentinel ./config/redis-sentinel-6379.conf(同样启动6380 6381)
ログイン後にコピー
プログラミング関連の知識の詳細については、
プログラミング入門
以上がRedis の Sentinel モード (Sentine) について話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。