一、介绍
哨兵(sentinel)是一个分布式系统,用于对主从结构中的每台服务器进行监控,当出现故障时通过投票机制选择新的master,并将所有slave连接到新的master。
二、作用
1、监控
不断的检查master和slave是否正常运行;
master存活检测、master与slave运行情况检测
2、通知
当被监控的服务器出现问题时,项其他(哨兵、客户端)通知
3、自动故障转移
断开master与slave连接,取一个slave作为master,将其他slave连接到新的master,并通知客户端新的服务器地址。
注意:
哨兵也是一台redis服务器,只是不提供数据服务,通常数量为单数
三、启动哨兵
1、文件配置
参看sentinel.conf文件(配置相同,端口不同)
port 端口号
monitor mymaster id 哨兵认为宕机的数量
down-after-milliseconds mymaster 哨兵认为宕机的时间(毫秒)
parallel-syncs mymaster 一次同时同步数据的数量
failover-timeout mymaster 同步有效时间(毫秒)
2、启动主从服务器
3、启动哨兵
redis-sentinel sentinel-端口号.conf
四、工作原理
1、监控阶段
2、通知阶段
3、故障转移阶段
发现master宕机
选取负责的sentinel
选择新的master:
在线的
相应快的
与原master断开较近的
优先原则:
优先级
offset
runid小的
向新的master发送slaveof no one,向其他slave发送slaveof新masterIP端口