一组sentinel能同时监控多个Master
最好3台服务器以上
哨兵提供API通知故障
哨兵部署:
配置redis.conf
appendfsync always
在从服务器的redis.conf中配置,主服务器中不用配置
slaveof ip 6379 //主服务器的Ip地址和Port端口号
slave-serve-stale-data no //如果slave 无法与master 同步,设置成slave不可读,方便监控脚本发现问题。
高版本中是
replica-serve-stale-data no
replicaof ip 6379
在sentinel.conf中配置
port 16379
protected-mode no
daemonize yes
logfile "./sentinel-16379.log"
pidfile "./redis-sentinel-16379.pid"
sentinel auth-pass mymaster 123
sentinel parallel-syncs mymaster 1
sentinel monitor mymaster 主服务器ip 6379 1
# 多长时间没有响应认为主观下线(SDOWN)
sentinel down-after-milliseconds mymaster 60000
# 表示如果15秒后,mysater仍没活过来,则启动failover,从剩下从节点序曲新的主节点
sentinel failover-timeout mymaster 15000
# 指定了在执行故障转移时, 最多可以有多少个从服务器同时对新的主服务器进行同步, 这个数字越小, 完成故障转移所需的时间就越长
sentinel parallel-syncs mymaster 1
配置完成后,主服务器宕机,从服务器的role变为master,当主服务器恢复后,不会改变从服务器的角色,当从服务器宕机后,主服务器才会再次变成master
哨兵提供API通知故障