Redis集群 哨兵模式
哨兵模式主要解决的是主从复制 master节点宕机之后,需手动断开主从关系重新设置主库的问题。
Sentinel(哨兵)进程是用于监控redis集群中Master主服务器工作的状态。
在Master主服务器发生故障的时候,可以实现Master和Slave服务器的切换,保证系统的高可用。
可以在一个架构中运行多个哨兵(sentinel) 进程,这些进程使用流言协议(gossipprotocols)来接收关于Master主服务器是否下线的信息,并使用投票协议(Agreement Protocols)来决定是否执行自动故障迁移,以及选择哪个Slave作为新的Master。
每个哨兵(Sentinel)进程会向其它哨兵(Sentinel)、Master、Slave定时发送消息,以确认对方是否”活”着,如果发现对方在指定配置时间(可配置的)内未得到回应,则暂时认为对方已掉线,也就是所谓的”主观认为宕机”
当“哨兵群”中的多数Sentinel进程在对Master主服务器做出 SDOWN 的判断,并且通过 SENTINEL is-master-down-by-addr 命令互相交流之后,得出的Master Server下线判断,这种方式就是“客观宕机”。
通过一定的vote算法,从剩下的slave从服务器节点中,选一台提升为Master服务器节点,然后自动修改相关配置,并开启故障转移(failover)。
https://www.cnblogs.com/PatrickLiu/p/8444546.html
哨兵是一个特殊的redis服务器。在启动redis的时候的添加 --sentinel 参数即可启动哨兵。
./redis-server sentinel.conf --sentinel
sentinel.conf配置文件
sentinel monitor mymaster 192.168.127.129 6379 1
配置 监控master节点信息
sentinel down-after-milliseconds mymaster 5000
配置哨兵检测master节点间隔时间
entinel down-after-milliseconds mymaster 30000
配置哨兵主观认为宕机的失联时间 默认30秒
配置端口
port 26379
配置master节点密码
sentinel auth-pass mymaster 0123passw0rd
开启后台启动
daemonize yes
设置日志级别
loglevel verbose
设置日志文件位置
logfile ""
..