一、为什么要有哨兵机制

主从切换技术的方法是:当服务器宕机后,需要手动一台从机切换为主机,这需要人工干预,不仅费时费力而且还会造成一段时间内服务不可用。Not
为了解决主从复制的缺点,就有了哨兵机制

二、什么是哨兵机制

Redis的哨兵(sentinel)系统用于管理多个Redis服务器,该系统执行以下三个任务:
1.监控(Monitoring)
哨兵(sentinel)会不断地检查你的Master和Slave是否正常运行。
2.提醒(Notification)
当被监控地某个Redis出现问题时,哨兵可以通过API向管理员或者其他应用程序发送通知。
3.自动故障转移(Automatic failover)
当一个Master不能正常工作时,哨兵会开始一次自动故障转移操作,它会将失效Master地其中一个Slave升级为新地Master,并且让失效的Master地其他slave改为复制新的Master;当客户端试图链接失效地Master时,集群也会向客户端返回新的Master地地址,使得集群可以使用新的Master代替失效地Master。

三、哨兵机制地高可用

原理:当主节点出现故障时,由哨兵自动完成故障发现和转移,并通知应用方,实现高可用性。
Redis中哨兵机制以及哨兵选举
其实整个过程只需要一个哨兵节点来完成,首先使用Raft算法(选举算法)实现选举机制,选出一个哨兵节点来完成通知和转移

四、哨兵地定时监控任务

任务1:每个哨兵节点每10秒会向主节点和从节点发送info命令获取最新地拓扑结构图,哨兵配置时只需要配置对主节点地监控即可,通过向主节点发送info,获取从节点地信息,并当有新的从节点加入时可以马上感知到。
Redis中哨兵机制以及哨兵选举
任务2:每个哨兵节点每隔2秒会向redis数据节点的指定频道上发送该哨兵节点对于主节点地判断以及当前哨兵节点地信息,同时每个哨兵节点也会订阅该频道,来了解其他哨兵节点地信息及对主节点的判断,其实就是通过消息publish和subscrible完成的
Redis中哨兵机制以及哨兵选举
任务3:每隔1秒每个哨兵会向主节点、从节点及其余哨兵节点发送一次ping命令做一次心跳检测,这个也是哨兵判断节点是否正常的重要依据。
Redis中哨兵机制以及哨兵选举
主观下线:根据定时任务3对没有有效回复的节点做主观下线处理。
客观下线:当主管下线的节点是主节点时,此时该哨兵3节点会通过指令 sentinel is-masterdown-by-addr寻求其他哨兵节点对主节点的判断,当超过quorum(选举)个数,此时哨兵节点则认为该主节点确实有问题,这样就客观下线了,大部分哨兵节点都同意下线操作,也就是客观下线。

五、领导者哨兵选举流程

1.每个在线的哨兵节点都可以成为领导者,当它确认(比如哨兵3)主节点下线时,会向其他哨兵发is-master-down-by-addr命令,征求判断并要求将自己设置为领导者,由领导者处理故障转移;
2.当其他哨兵收到此命令时,可以同意或者拒绝它成为领导者;
3.如果哨兵3发现自己在选举的票数大于等于哨兵的个数/2+1时,将会成为领导者,如果没有超过,继续选举。。。。
Redis中哨兵机制以及哨兵选举

六、故障转移机制

1.由哨兵节点定期监控发现主节点是否出现了故障
哨兵会向master发送心跳ping命令来确认master是否存活,如果master在一定时间范围内不回复PONG或者是回复一个错误消息,那么这个哨兵就会主观的(单方面的)认为这个master不可用了
Redis中哨兵机制以及哨兵选举
2.当主节点出现故障,此时三个哨兵节点共同选举了哨兵3节点为领导,负责处理主节点的故障转移
Redis中哨兵机制以及哨兵选举
3.由哨兵3领导者节点执行故障转移,过程和主从复制一样,但是是自动执行的
Redis中哨兵机制以及哨兵选举
流程
1.将slave-1脱离原来的从节点,升级主节点;
2.将从节点slave-2指向新的主节点;
3.通知客户端主节点已经更换;
4.将远主节点(oldMaster)变成从节点,指向新的主节点。

七、哨兵机制–故障转移详细流程–确认主节点

1.过滤掉不健康的(下线或者短线),没有回复哨兵ping响应的从节点
2.选择slave-priority从节点优先级最高的(redis.conf)。
3.选择复制偏移量最大,也就是复制最完整的从节点。

八、小结

redis哨兵的作用
1.监控主数据库和从数据库是否正常运行
2.主数据库出现故障时,可以自动将从数据库转换为主数据库,实现自动切换。

相关文章:

  • 2021-07-07
猜你喜欢
  • 2022-12-23
  • 2021-05-17
  • 2021-06-16
  • 2021-06-19
  • 2021-10-12
  • 2021-09-24
相关资源
相似解决方案