redis一主一従三哨兵
6384 ワード
1.サーバ計画(例)
サーバ:(redisホストが使用できるメモリ容量が一致し、maxmemoryが構成されていることが要求されます)
192.168.127.8 redis-7003メインノードredis-sentinel-7013 redis哨兵1
192.168.127.7 redis-7002メインノードredis-sentinel-7012 redis哨兵2
192.168.127.6 redis-sentinel-7011 redis哨兵3
説明:メインノードがラインオフした後、3人の哨兵が投票して誰がleaderなのかを決定し、2人以上の哨兵がメインノードがラインオフしたと判断した場合(主観ラインオフ)、leaderは故障移転の仕事をする
質問:1.プライマリ・スレーブの切り替えが1回行われると、reidsノードが1つしか実行されず、プライマリ・スレーブの再切り替えが必要な場合は、元のダウンタイムのredisノードを起動する必要があります.
2.プライマリスレーブノードの切り替え後、クライアントは要求されたIPアドレスを切り替える必要があり、jedisクライアントはIPアドレスの変換を実現できず、元のjedisクライアントを使用すると正常にアクセスできず、sharded-jedis-sentinel-poolを使用する必要がある
2.1台の機器にredisを取り付ける
3.redisインストール後のフォルダを他のマシンにコピーし、redis-${port}と名前を変更
4.各マシンにredisインストールフォルダをコピーし、redis-sentinel-${port}と名前を変更
5.redisマスターノードの構成
6.redisスレーブノードの構成
7.redis歩哨ノードの構成(3つの歩哨があり、構成はポートのみが異なり、ここでは一例として1つのみ構成)
8.redisマスターノードの起動
bin/redis-server conf/redis-7003.conf
9.redisスレーブノードの起動
bin/redis-server conf/redis-7002.conf
10.redis哨兵ノードの起動
bin/redis-sentinel conf/redis-7013.conf
bin/redis-sentinel conf/redis-7012.conf
bin/redis-sentinel conf/redis-7011.conf
11.マスターノードとスレーブノードでマスタースレーブ状態を観察する(現在のマスターノードにはスレーブノード192.128.127.7:7002がある)
プライマリノードで表示
ノードから表示(現在、ノードからプライマリノード192.128.1127.8:7003)
12.メインノードをラインオフし、自動フェイルオーバのプロセスを観察する
sentinelのログを表示すると、プライマリ・ノードからの切り替えを示すログが表示されます.
ノードからinfo replicationをクエリーすると,元のノードからプライマリノードに変わり,ノードから
サーバ:(redisホストが使用できるメモリ容量が一致し、maxmemoryが構成されていることが要求されます)
192.168.127.8 redis-7003メインノードredis-sentinel-7013 redis哨兵1
192.168.127.7 redis-7002メインノードredis-sentinel-7012 redis哨兵2
192.168.127.6 redis-sentinel-7011 redis哨兵3
説明:メインノードがラインオフした後、3人の哨兵が投票して誰がleaderなのかを決定し、2人以上の哨兵がメインノードがラインオフしたと判断した場合(主観ラインオフ)、leaderは故障移転の仕事をする
質問:1.プライマリ・スレーブの切り替えが1回行われると、reidsノードが1つしか実行されず、プライマリ・スレーブの再切り替えが必要な場合は、元のダウンタイムのredisノードを起動する必要があります.
2.プライマリスレーブノードの切り替え後、クライアントは要求されたIPアドレスを切り替える必要があり、jedisクライアントはIPアドレスの変換を実現できず、元のjedisクライアントを使用すると正常にアクセスできず、sharded-jedis-sentinel-poolを使用する必要がある
2.1台の機器にredisを取り付ける
3.redisインストール後のフォルダを他のマシンにコピーし、redis-${port}と名前を変更
4.各マシンにredisインストールフォルダをコピーし、redis-sentinel-${port}と名前を変更
5.redisマスターノードの構成
port
7003
dir
"/usr/local/redis4/data"
logfile
"7003.log"
daemonize yes
pidfile
"/var/run/redis_7003.pid"
# redis , , redis
protected
-mode no
#
requirepass
"2329257"
#
maxmemory 1gb
6.redisスレーブノードの構成
port
7002
dir
"/usr/local/redis4/data"
logfile
"7002.log"
daemonize yes
pidfile
"/var/run/redis_7002.pid"
# redis , , redis
protected
-mode no
#
masterauth
"2329257"
#
maxmemory 1gb
7.redis歩哨ノードの構成(3つの歩哨があり、構成はポートのみが異なり、ここでは一例として1つのみ構成)
port
7012
dir
"/usr/local/redis4-sentinel/data"
logfile
"7012.log"
daemonize yes
pidfile
"/var/run/redis_7012.pid"
# redis , , redis
protected
-mode no
sentinel deny-scripts-reconfig yes
# IP
2
sentinel monitor mymaster
192.168
.
127.8
7003
2
#sentinel ping , 150s ,
sentinel down-after-milliseconds mymaster
150000
#
sentinel auth-pass mymaster
2329257
#
2
sentinel config-epoch mymaster
2
sentinel leader-epoch mymaster
2
# ,
sentinel failover-timeout mymaster
180000
8.redisマスターノードの起動
bin/redis-server conf/redis-7003.conf
9.redisスレーブノードの起動
bin/redis-server conf/redis-7002.conf
10.redis哨兵ノードの起動
bin/redis-sentinel conf/redis-7013.conf
bin/redis-sentinel conf/redis-7012.conf
bin/redis-sentinel conf/redis-7011.conf
11.マスターノードとスレーブノードでマスタースレーブ状態を観察する(現在のマスターノードにはスレーブノード192.128.127.7:7002がある)
プライマリノードで表示
# Replication
role:master
connected_slaves:
1
slave0:ip=
192.168
.
127.7
,port=
7002
,state=online,offset=
444947
,lag=
0
master_replid:f526d934f5f315888731e918f97f0d14ad2724e2
master_replid2:4c6db5630cb19eeebea9796fde82f80188bf1926
master_repl_offset:
445101
second_repl_offset:
25084
repl_backlog_active:
1
repl_backlog_size:
1048576
repl_backlog_first_byte_offset:
1
repl_backlog_histlen:
445101
ノードから表示(現在、ノードからプライマリノード192.128.1127.8:7003)
# Replication
role:slave
master_host:
192.168
.
127.8
master_port:
7003
master_link_status:up
master_last_io_seconds_ago:
1
master_sync_in_progress:
0
slave_repl_offset:
435231
slave_priority:
100
slave_read_only:
1
connected_slaves:
0
master_replid:f526d934f5f315888731e918f97f0d14ad2724e2
master_replid2:
0000000000000000000000000000000000000000
master_repl_offset:
435231
second_repl_offset:-
1
repl_backlog_active:
1
repl_backlog_size:
1048576
repl_backlog_first_byte_offset:
429707
repl_backlog_histlen:
5525
12.メインノードをラインオフし、自動フェイルオーバのプロセスを観察する
sentinelのログを表示すると、プライマリ・ノードからの切り替えを示すログが表示されます.
+
switch
-master mymaster
192.168
.
127.8
7003
192.168
.
127.7
7002
ノードからinfo replicationをクエリーすると,元のノードからプライマリノードに変わり,ノードから
# Replication
role:master
connected_slaves:
0
master_replid:f526d934f5f315888731e918f97f0d14ad2724e2
master_replid2:4c6db5630cb19eeebea9796fde82f80188bf1926
master_repl_offset:
399326
second_repl_offset:
25084
repl_backlog_active:
1
repl_backlog_size:
1048576
repl_backlog_first_byte_offset:
1
repl_backlog_histlen:
399326