1.Redis Sentinel描述
Sentinel主要功能就是为Redis M-S(master,slaves)集群提供了
(1)master存活检测
(2)集群中M-S服务监控
(3)自动故障转移,M-S角色转换等能力,从一个方面说是提高了redis集群的可用性.
(4)当master失效后,sentinel可以帮助我们自动将slave提升为master
2.环境配置
- 上一篇已经部署好redis集群的主从复制(http://blog.youkuaiyun.com/zj0116/article/details/44673017)在该集群的基础上来配置redis的监控集群
- 首先把Redis监控配置文件(Sentinel.conf)拷贝到系统配置 /etc下,每台机器分别拷贝一份
- 比如
cp /usr/local/redis/redis-2.8.19/sentinel.conf /etc/redis/sentinel-26379.conf
- 端口分别为
redis_master:26379
redis_slave1:26479
redis_slave2:26579
3.修改配置文件
(1)主节点监控配置文件修改(192.168.1.110)
vi /etc/redis/sentinel-26379.conf
port 26379
sentinel monitor redis_master 192.168.1.110 6379 1
sentinel down-after-milliseconds redis_master 5000
sentinel parallel-syncs redis_master 1
sentinel failover-timeout redis_master 180000
(2)主节点配置文件修改(192.168.1.111)
vi /etc/redis/sentinel-26479.conf
port 26479
sentinel monitor redis_master 192.168.1.110 6379 1
sentinel down-after-milliseconds redis_master 5000
sentinel parallel-syncs redis_master 1
sentinel failover-timeout redis_master 180000
(3)主节点配置文件修改(192.168.1.112)
vi /etc/redis/sentinel-26579.conf
port 26579
sentinel monitor redis_master 192.168.1.110 6379 1
sentinel down-after-milliseconds redis_master 5000
sentinel parallel-syncs redis_master 1
sentinel failover-timeout redis_master 180000
1.
2.
3.
4.
4.完整切换过程
sentinel发现master下线,则标记master sdown
和其他sentinel协商以确定master状态是否odown
如果master odown,则选出leader
当选为leader的sentinel选出一个slave做为master,并向该slave发送slaveof no one命令以转变slave角色为master
向已下线的master及其他slave发送slaveof xxxx命令使其作为新当选master的slave