注意
- まず第一に、私はこれら二つのブログは私のものより良いと思います:
- 実際、手順に従って構築できますが、テストしたところ、うまくいきませんでした。できるだけ早く、sentinel.confの待機データの値を調整して、効果を確認する必要があります。
ねらい
- 高可用性の要件を満たすために3ノードのRedisサービスクラスターを構築する
- ユニファイドIP:3ノードのクラスターがユニファイドIPアドレスを公開
- 高可用性:マスターノードがダウンしていて、スレーブノードがマスターノードをすばやく引き継ぐ必要がある
- 読み取りと書き込みの分離:マスターノードは読み取りと書き込みを許可し、スレーブノードは読み取り専用です
- クイック参加:ダウンノードの再起動後、クラスターに参加し、クラスタースレーブノードになります
主な手順
- 3つのredisをインストールする
- redis.confファイルを変更する
- sentinel.confファイルを変更する
- 最初にredisを1つずつ開始し、問題がある場合は、ここで答えを見つけることができるかどうかを確認してください:ミドルウェアのインストールプロセスのいくつかのピット
- センチネルを再起動する
- VIPスクリプトを構成して初期化する
プロテストはスクリプトを使用できます
protected-mode yes
port 6379
daemonize yes
bind 0.0.0.0
pidfile "/var/run/redis_6379.pid"
logfile "/etc/redis/redis.log"
dir "/etc/redis"
dbfilename "dump.rdb"
replica-read-only yes
requirepass "Sxxxxx4"
masterauth "Sxxxxxx4"
port 26379
daemonize yes
protected-mode no
pidfile "/var/run/redis-sentinel.pid"
logfile "/etc/redis/sentinel.log"
dir "/tmp"
sentinel myid e09252859aced76c83958ef6686b739da9b2035f
sentinel deny-scripts-reconfig yes
sentinel monitor mymaster01 1xx.xx.xx.4 6379 2
sentinel down-after-milliseconds mymaster01 5000
sentinel failover-timeout mymaster01 10000
sentinel auth-pass mymaster01 Spdb@1234
sentinel client-reconfig-script mymaster01 /etc/redis/transip.sh
#!/bin/bash
MASTER_IP=$6
LOCAL_IP='1x x x12'
VIP='1xxxx2'
NETMASK='24'
INTERFACE='eth0'
if [ ${MASTER_IP}=${LOCAL_IP} ]; then
/sbin/ip addr add ${VIP}/${NETMASK} dev ${INTERFACE}
/sbin/arping -q -c 3 -A ${VIP} -I ${INTERFACE}
exit 0
else
/sbin/ip addr del ${VIP}/${NETMASK} dev ${INTERFACE}
exit 0
fi
exit 1