哨兵简介
哨兵(sentinel)是一个分布式系统,对主从结构中所有服务器进行监控,当出现故障时通过投票机制选择新的master,并且让其它的slave连接到这个新的master。
哨兵的作用
- 监控:不停的监控服务器是否正常运行。master存货检测、master和slave运行情况检测。
- 通知:当监控的服务器出现问题时,向其他(客户端、哨兵间)发送通知
- 自动故障转移:断开master和slave的连接,选取一个新的slave来当master,并且将其它的slave连接到这个新的master,并告诉客户端新的服务器地址
注意:哨兵也是一个redis服务器,只是不提供数据服务。通常哨兵配置为单数
启用哨兵模式
- 启动哨兵
redis-sentinel sentinel- 端口号 .conf
过滤信息查看哨兵配置信息
cat sentinel.conf | grep -v "#" |grep -v "^$"
拷贝该配置文件到conf目录下
cat sentinel.conf | grep -v "#" |grep -v "^$" > ./conf/sentinel-26379.conf
到conf目录下更改此拷贝后的文件
拷贝两份同样的文件
sed 's/26379/26380/g' sentinel-26379.conf > sentinel-26380.conf
sed 's/26379/26381/g' sentinel-26379.conf > sentinel-26381.conf
拷贝一份redis-6380.conf
sed 's/6380/6381/g' redis-6380.conf > redis-6381.conf
清除data下的所有数据
启动1个master和2个slave服务器。启动一个哨兵。
启动哨兵客户端(不允许对数据操作)
启动另外两个哨兵
停掉master服务器
哨兵工作原理
哨兵在进行主从切换的过程中经历了三个阶段:监控、通知、故障转移
- 监控:同步信息
- 通知:保持联通
- 故障转移:发现问题、竞选负责人、选取新的master、让其他的slave与新的master连接,原master作为slave故障恢复后连接