哨兵模式
哨兵:sentinel
主从架构中,master节点挂掉后,slave节点依旧不能转变为master节点,这样整个redis集群依然不具有写操作,那么该如何解决这个问题呢?
此时就可以配置一个哨兵集群,用户监控redis集群
一、哨兵配置文件: sentinel.conf
bind 127.0.0.1 192.168.1.1
protected-mode no
port 26379
daemonize yes
pidfile /var/run/redis-sentinel.pid
logfile /usr/local/redis/sentinel/redis-sentinel.log
dir /usr/local/redis/sentinel
sentinel monitor allen-master 127.0.0.1 6379 2
sentinel auth-pass allen-master allen_password
sentinel down-after-milliseconds allen-master 30000
sentinel parallel-syncs allen-master 1
sentinel failover-timeout allen-master 180000
二、启动redis的哨兵
redis-sentinel sentinel.conf
当master节点挂掉后,所有的slave节点会进行选举,选举出来一个节点作为新的master节点,同时会想其他slave节点同步数据,并行同步的slave节点的数量可以在sentinel.conf配置文件中配置。
当旧的master节点重启后,会自动转为slave节点,选举出来的master节点不发生变化。
一般master数据无法同步给slave的方案检查为如下:
网络通信问题,要保证互相ping通,内网互通。
关闭防火墙,对应的端口开发(虚拟机中建议永久关闭防火墙,云服务器的话需要保证内网互通)。
统一所有的密码,不要漏了某个节点没有设置。
三、使用哨兵相关的命令查看哨兵的信息
redis-cli -p 26379
sentinel master allen-master
sentinel slaves allen-master
sentinel sentinels allen-master
四、部署约定
redis的slave节点最好设置为奇数,最少节点数为3个,经典的配置为一主三从。
quorum数为:节点数 / 2 + 1
哨兵分布式部署在不同的计算机节点。
一组哨兵只监听一组主从。
五、springboot整合哨兵
redis:
database:1
password:allen
sentinel:
master:allen-master
nodes:192.168.1.191:26379,192.168.1.192:26379,192.168.1.193:26379