NoSQLデータベースのケースコンバット--Redis高可用性ソリューション--Redis + Sentinel(プロジェクトコンバット)

序文

この環境は、Redis学習環境を構築するためのCentos 7.8システムに基づいています。
具体的な構築については、Redis-5.0.9環境の展開を参照してください


1.センチネルアーキテクチャの設計

ここに画像の説明を挿入

2.環境への備え

役割 ホスト ip Redisバージョン
主人 node01 192.168.5.11 Redis-5.0.9
slave1 node02 192.168.5.12 Redis-5.0.9
slave2 node03 192.168.5.13 Redis-5.0.9

注:この環境はredis-yumに基づいてインストールされます

3つ目は、マスター/スレーブ同期を構成することです。

主人

[root@node01 ~]# vim /etc/redis.conf 
bind 192.168.5.11
daemonize yes
appendonly yes
[root@node01 ~]# systemctl enable --now redis

slave1

[root@node02 ~]# vim /etc/redis.conf 
bind 192.168.5.12
daemonize yes
appendonly yes
replicaof 192.168.5.11 6379
[root@node02 ~]# systemctl enable --now redis

slave2

[root@node03 ~]# vim /etc/redis.conf
bind 192.168.5.13
daemonize yes
appendonly yes
replicaof 192.168.5.11 6379
[root@node03 ~]# systemctl enable --now redis

マスタースレーブの同期状態を確認する

マスター
ここに画像の説明を挿入
スレーブ1の
ここに画像の説明を挿入
スレーブ2
ここに画像の説明を挿入
マスター・スレーブ同期設定に成功!

第四に、歩哨サービスを構成します

l構成ファイルマスターを変更する

[root@node01 ~]# vim /etc/redis-sentinel.conf 
daemonize yes
sentinel monitor mymaster 192.168.5.11 6379 2
[root@node01 ~]# systemctl enable --now redis-sentinel.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/redis-sentinel.service to /usr/lib/systemd/system/redis-sentinel.service.
[root@node01 ~]# netstat -lnutp | grep 6379
tcp        0      0 192.168.5.11:26379      0.0.0.0:*               LISTEN      11911/redis-sentine 
tcp        0      0 192.168.5.11:6379       0.0.0.0:*               LISTEN      1698/redis-server 1 

slave1

[root@node02 ~]# vim /etc/redis-sentinel.conf
bind 192.168.5.11
daemonize yes
sentinel monitor mymaster 192.168.5.11 6379 2
[root@node02 ~]# systemctl enable --now redis-sentinel.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/redis-sentinel.service to /usr/lib/systemd/system/redis-sentinel.service.
[root@node02 ~]# netstat -lnutp | grep 6379
tcp        0      0 192.168.5.12:26379      0.0.0.0:*               LISTEN      11884/redis-sentine 
tcp        0      0 192.168.5.12:6379       0.0.0.0:*               LISTEN      1717/redis-server 1 

slave2

[root@node03 ~]# vim  /etc/redis-sentinel.conf 
bind 192.168.5.13
daemonize yes
sentinel monitor mymaster 192.168.5.11 6379 2
[root@node03 ~]# systemctl enable --now redis-sentinel.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/redis-sentinel.service to /usr/lib/systemd/system/redis-sentinel.service.
[root@node03 ~]# netstat -lnutp | grep 6379
tcp        0      0 192.168.5.13:26379      0.0.0.0:*               LISTEN      11791/redis-sentine 
tcp        0      0 192.168.5.13:6379       0.0.0.0:*               LISTEN      1648/redis-server 1 

歩哨ステータスを表示

歩哨ログファイルの追跡歩哨
ここに画像の説明を挿入
情報の表示
ここに画像の説明を挿入

マスターセンチネル情報を表示する
ここに画像の説明を挿入

軟膏センチネル情報を見る
ここに画像の説明を挿入

5、センチネルフェイルオーバーをシミュレートします

マスターredisサービスを停止します

[root@node01 ~]# systemctl stop redis
[root@node01 ~]# netstat -lnutp | grep redis
tcp        0      0 192.168.5.11:26379      0.0.0.0:*               LISTEN      11911/redis-sentine 

3分後のステータスマスタースレーブステータスを表示する

node02へのマスタースイッチ

トレースログ
ここに画像の説明を挿入

マスタースレーブステータスを表示する
ここに画像の説明を挿入
ここに画像の説明を挿入

マスターはデータの書き込みと削除を行い、
ここに画像の説明を挿入
フェイルオーバーは成功します。
ここに画像の説明を挿入

node01redisサービスを開始します

[root@node01 ~]# systemctl start redis
[root@node01 ~]# netstat -lnutp | grep redis
tcp        0      0 192.168.5.11:6379       0.0.0.0:*               LISTEN      12031/redis-server  
tcp        0      0 192.168.5.11:26379      0.0.0.0:*               LISTEN      11911/redis-sentine

マスタースレーブステータスを表示する
ここに画像の説明を挿入

マスターがデータを書き込み、サルブが同期ステータスをチェックします

マスターはデータを書き込みます
ここに画像の説明を挿入node01ビュー
ここに画像の説明を挿入
node03ビュー
ここに画像の説明を挿入
フェイルオーバーとフェイルオーバー機能が実現!

障害回復の成功(非プリエンプティブ選挙の役割)

注:マスターが障害を送信した後、sentinelは、フェイルオーバーとフェイルオーバーの要件を満たすために、ノード構成ファイルを変更することによってカラーキャリブレーションを切り替えます

Redis歩哨が正常に構成されました!

おすすめ

転載: blog.csdn.net/XY0918ZWQ/article/details/113807073