2019-04-10ノート-Redis哨兵モード
3188 ワード
Redis sentinelの紹介
Redis Centinelは、Redisが高可用性の実装スキームである.Centinelは、複数のRedisインスタンスを管理するツールで、Redisの監視、通知、自動フェイルオーバを実現します.
Redis Centinelの主な機能
Sentinalの主な機能は、プライマリノードの生存検出、プライマリ・スレーブの運転状況検出、自動フェイルオーバ(failover)、プライマリ・スレーブの切り替えを含む.RedisのSentineの最小構成は一主一従である.RedisのSentinelシステムは、次の4つのタスクを実行できる複数のRedisサーバを管理するために使用できます.モニタ-Centinelは、プライマリ・サーバとセカンダリ・サーバが正常に動作しているかどうかを確認します. 通知:監視対象のRedisサーバに問題が発生した場合、SentineはAPIスクリプトを使用して管理者または他のアプリケーションに通知を送信します. 自動フェイルオーバ:プライマリ・ノードが正常に動作しない場合、Centinelは自動フェイルオーバ操作を開始し、失効したプライマリ・ノードとプライマリ・スレーブ関係の1つをノードから新しいプライマリ・ノードにアップグレードし、他のセカンダリ・ノードを新しいプライマリ・ノードに移動します. プロビジョニングプロバイダ-Redis Sentineモードでは、クライアントアプリケーションが初期化時に接続するのはSentineノードのセットであり、そこからプライマリノードの情報を取得します.
Redis Centinelのワークフローリファレンスリンク(図を含む):http://www.cnblogs.com/jifeng/p/5138961.html
Sentinelはクラスタ内のすべてのプライマリを監視し、Redisからプライマリ障害が検出されると、すべてのセカンダリから新しいプライマリを選択します.そして残りの従を新しい主の従に変える.同時にその問題のある旧主も新主の従者になり、つまり旧主が回復しても元の主の身分を回復するのではなく、新主の従者となる.Redis高可用性アーキテクチャでは、Centinelは1つではなく3つ以上あることが多い.目的はより信頼性を高めるためで、結局主と役を切り替える過程は複雑です
関連概念主観失効 SDOWN(subjectively down)は、直接翻訳する「主観」が失効し、すなわち、現在のsentinelインスタンスは、あるredisサービスが「利用できない」状態であると考えている.客観失効 ODOWN(objectively down)は、直接「客観的」に訳すと失効します.すなわち、複数のsentinelインスタンスがmasterが「SDOWN」状態にあると判断すると、masterはODOWNになります.ODOWNは、masterがクラスタによって「使用不可」と判断されたと簡単に理解できます.failoverが開きます
環境は3台の機械を準備し、そのうち各機械には2つの役割があり、以下のように割り当てられている.
ホスト名
IP:Port
ロール#ロール#
linux2019_1
192.168.85.129:6379
Redis Master
linux2019_2
192.168.85.130:6379
Redis Slave1
linux2019_3
192.168.85.128:6379
Redis Slave2
linux2019_1
192.168.85.129:6379
Sentinel1
linux2019_2
192.168.85.130:6379
Sentinel2
linux2019_3
192.168.85.128:6379
Sentinel3
操作手順: Redis をインストール導入主従 配置Sentinal-3台のSentinalプロファイルは同じで、編集プロファイル sentinel を起動
起動順序:メインRedis->Redis->Sentinal 1/2/3
Redis Centinelは、Redisが高可用性の実装スキームである.Centinelは、複数のRedisインスタンスを管理するツールで、Redisの監視、通知、自動フェイルオーバを実現します.
Redis Centinelの主な機能
Sentinalの主な機能は、プライマリノードの生存検出、プライマリ・スレーブの運転状況検出、自動フェイルオーバ(failover)、プライマリ・スレーブの切り替えを含む.RedisのSentineの最小構成は一主一従である.RedisのSentinelシステムは、次の4つのタスクを実行できる複数のRedisサーバを管理するために使用できます.
Redis Centinelのワークフローリファレンスリンク(図を含む):http://www.cnblogs.com/jifeng/p/5138961.html
Sentinelはクラスタ内のすべてのプライマリを監視し、Redisからプライマリ障害が検出されると、すべてのセカンダリから新しいプライマリを選択します.そして残りの従を新しい主の従に変える.同時にその問題のある旧主も新主の従者になり、つまり旧主が回復しても元の主の身分を回復するのではなく、新主の従者となる.Redis高可用性アーキテクチャでは、Centinelは1つではなく3つ以上あることが多い.目的はより信頼性を高めるためで、結局主と役を切り替える過程は複雑です
関連概念
環境は3台の機械を準備し、そのうち各機械には2つの役割があり、以下のように割り当てられている.
ホスト名
IP:Port
ロール#ロール#
linux2019_1
192.168.85.129:6379
Redis Master
linux2019_2
192.168.85.130:6379
Redis Slave1
linux2019_3
192.168.85.128:6379
Redis Slave2
linux2019_1
192.168.85.129:6379
Sentinel1
linux2019_2
192.168.85.130:6379
Sentinel2
linux2019_3
192.168.85.128:6379
Sentinel3
操作手順:
vi /etc/sentinel.conf #
#
port 26379
#
daemonize yes
# pid
pidfile /var/run/redis-sentinel.pid
#
logfile "/var/log/sentinel.log"
#
dir /var/redis
# Redis , IP, , 2 2 Sentinel Redis
sentinel monitor mymaster 192.168.85.129 6379 2
# mymaster 30 ,
sentinel down-after-milliseconds mymaster 30000
# master , slave master , , slave , slave, , 。 1, , , slave , slave 。
sentinel parallel-syncs mymaster 1
# , , ,
sentinel failover-timeout mymaster 180000
# SENTINEL SET notification-script client-reconfig-script。
sentinel deny-scripts-reconfig yes
起動順序:メインRedis->Redis->Sentinal 1/2/3
[root@linux2019_01 ~]# redis-sentinel /etc/sentinel.conf
[root@linux2019_01 ~]# redis-server /etc/sentinel.conf --sentinel #
[root@linux2019_01 ~]# ps aux|grep sentinel
root 7609 0.4 0.3 153880 7944 ? Ssl 22:50 0:02 redis-sentinel *:26379 [sentinel]
root 7737 0.0 0.0 112724 988 pts/0 S+ 22:59 0:00 grep --color=auto sentinel