1、为什么会有redis哨兵模式?
因为主从复制当中,主机宕机了,需要手动更换主机,不仅效率低下,严重会导致业务的损失,而哨兵模式完美的解决了这个问题,当主机宕机了,就会重新选举一个从机接管主机的工作。
2、哨兵模式的作用
(1)监控:当检查主机和从机的工作状态
(2)提醒:当主机或者从机出现了故障,此时sentinel会通过API向管理员或者应用程序发送 提醒
(3)故障转移:当主机出现了故障,自动从从机当中选举master来接管主机。
3、redis哨兵模式的搭建
(1)环境准备
master
slave
slave
(2)配置sentinel.conf
bind 0.0.0.0 //允许所有的IP访问
protected-mode no //允许所有的主机连接
sentinel monitor mymaster(主机名,自己随意) IP 6379 2 //IP是master的
sentinel down-after-milliseconds mymaster 10000 //主观下线的一个依据。
(3)使用scp命令将sentinel.conf文件发送给slave
sentinel.conf是一个动态变化的文件。
(4)开启sentinel服务
在src相对路径下
./redis-server sentinel.conf --sentinel
(5)REDIS哨兵启动报MASTER SDOWN的解决办法
没有配置节点认证的密码,因为redis本身设置了密码。
sentinel auth-pass mymaster 123456
(6)开启命令行模式,查看主机下对应从机的信息
redis-cli
info replication
(7)我们在主机上模拟故障
shutdown
常看从机对应的日志信息
因为sentinel的日志是动态的所以我们也要动态的监控
tail -f /var/log/sentinel.conf
(8)解读日志,这是我自己的
slave认为master跌机了,也就是主观跌机,开启了一个新的纪元,给领导者(主机)投票的id为2aa85be7f41c56cefbdf731ca73d84a07e98470a ,投票数量为1,quorum数量的哨兵都觉得主机跌机了,那就是客观跌机,接下来就是一个故障切换的延误,然后是,sentinel配置文件的更新,将192.168.26.152更新为192.168.26.150,切换主机为192.168.26.151,接下里就是两个slave相对于主机的增加,然后主机在认为192.168.26.150是自己跌机了
+sdown主观宕机
+odown客观宕机