redis详解-(10)哨兵

来源:互联网 发布:java重载返回值类型 编辑:程序博客网 时间:2024/06/06 11:15

上一篇介绍了redis和创建主从的几种方法,但都是手动的创建和切换,本篇介绍一下redis的自动切换模式。

高可用sentinel
官方提供的高可用方案,可以用它管理多个redis服务实例
编译后产生redis-sentinel程序文件
redis sentinel是一个分布式系统,可以在一个架构中运行多个sentinel进程。

启动sentinel
将src目录下产生redis-sentinel程序文件复制到$REDIS_HOME/bin
启动一个运行在sentinel模式下的redis服务实例

redis-sentinel
redis-server /path/to/sentinel.conf –sentinel

监控monitoring
sentinel会不断检查master和slaves是否正常,每个sentinel可以监控任意多个master和该master下的slaves
这里写图片描述
sentinel网络
监控同一个master的sentinel会自动连接,组成一个分布式的sentinel网络,互相通信并交换彼此关于被监视服务器的信息。
这里写图片描述

服务器下线
当一个sentinel认为被监视的服务器已经下线时,它会向网络中的其他sentinel进行确认,判断服务器是否真的已经下线了。如果下线的服务器为主服务器,那么sentinel网络将对下线主服务器进行自动故障转移,通过将下线主服务器的某个从服务器提升为新的主服务器,并让其他从服务器转为复制新的主服务器,以此来让系统重新回到上线的状态。如果发生故障的主服务器恢复正常,那么该主服务器将落为从服务器工作。

这里写图片描述

sentinel配置文件
至少包含一个监控配置选项,用于指定被监控master的相关信息
sentinel monitor name ip port quorum
例如:sentinel monitor mymaster 127.0.0.1 6379 2
监视mymaster的主服务器,服务器ip和端口,将这个主服务器判断为下线失效至少需要2个sentinel同意,如果多数sentinel同意才会执行故障转移。
sentinel会根据master的配置自动发现master的slaves
sentinel默认端口号为26379。

下一篇将以案例的形式搭建redis哨兵集群服务。