redis哨兵模式和集群模式优缺点_redis集群哨兵模式Redis主从模式是一主多从,从节点宕机还有其他的备份,但是主节点宕机了,必然引起系统的故障。为了解决这个问题,Redis提供了哨兵模式,监控主从模式中的所有节点,如果主节点宕机,会选举从节点重新成为主节点。使整个主从服务正常运行。Redis提供了哨兵机制来实现主从集群的自动故障恢复。其主要起到的作用如下:Sentinel基于心跳机制监测服务状态,每个一秒向集群中的每个实例发送ping命令。一旦发现主节点故障,sentinel需要在从节点选择新的主节点,选择依据:当选中其中一个从节点为新
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说redis哨兵模式和集群模式优缺点_redis集群哨兵模式,希望能够帮助大家进步!!!
Redis 哨兵模式
Redis 主从模式是一主多从,从节点宕机还有其他的备份,但是主节点宕机了,必然引起系统的故障。为了解决这个问题,Redis 提供了哨兵模式,监控主从模式中的所有节点,如果主节点宕机,会选举从节点重新成为主节点。使整个主从服务正常运行。
Redis 提供了哨兵机制来实现主从集群的自动故障恢复。其主要起到的作用如下:
- 监控:Sentinel 会监控不断检查主从集群的主从节点是否正常工作;
- 故障恢复:主节点宕机,Sentinel 会从从节点中选举出一个节点,将其设置为主节点,故障恢复后原先的主节点将置为从节点;
- 通知:Sentinel 充当客户端的服务发现来源,当集群发现故障转移后,会将最新消息推送到客户端。
服务状态监控
Sentinel 基于心跳机制监测服务状态,每个一秒向集群中的每个实例发送 ping 命令。
- 主观下线:如果某 Sentinel 节点发现某个节点未在规定的时间响应心跳,那么就认为该节点主观下线;
- 客观下线:如果指定数量的 Sentinel 认为某个节点下线,那么该节点将被认为客观下线。
选举新的主节点
一旦发现主节点故障, sentinel 需要在从节点选择新的主节点,选择依据:
- 首先会判断从节点和主节点的断开的时间,如果超过指定值则会排除该从节点;
- 判断节点的优先等级,越小优先级越高,如果是0说明不参与选举;
- 判断从节点同步数据偏移量,雨大说明数据越新,优先级越高;
- 租后判断节点的运行id,越小优先级越高。
如何故障转移
当选中其中一个从节点为新的主节点,故障转移的步骤如下:
- sentinel 给备选的从节点发送 slaveof no one 命令,该节点就成为主节点;
- sentinel 给其他所有的从节点发送 slave of 指令,让其他的节点称为新主节点的从节点,开始从新的主节点同步数据。
- 最后 sentinel 会将故障节点标记为从节点,当故障节点重启后自动变为新主节点的从节。