Redis拾遗(六)
哨兵:
- Redis主从复制模式下,一旦主节点故障不能提供服务,哨兵架构可解决此类问题,自动完成故障发现和故障转移,并通知应用方,实现真正的高可用。
 - 逻辑架构上Redis Sentinel只是新增了多个Sentinel节点,这些节点集合会定期对所有节点进行监控,特别是对主几点的故障实现自动转移。
 - 安装和部署:
- 启动主节点;
 - 启动两个从节点(配置文件中加slaveof);
 - 配置Sentinel节点;
 - 启动Sentinel节点;(redis-sentinel命令);
 
 - 部署技巧:
- 不应将Sentinel节点部署到同一物理机上,防止硬件故障导致整体异常;
 - 部署三个以上奇数个Sentinel节点;
 
 - 实现原理
- 三个定时监控任务:
- 每隔10s,每隔Sentinel节点会想主节点和从节点发送info命令获取最新的拓扑结构。
 - 每隔2s,每个Sentinel节点会向Redis数据节点的__sentinel__:hello频道上发送该Sentinel节点对于主节点的判断以及当前Sentinel节点的信息,同时每个Sentinel节点也会订阅该频道,了解其他Sentinel节点以及它们对主节点的判断。
 - 每隔1s,每个Sentinel节点会向主节点、从节点、其余Sentinel节点发送一条ping命令做一次心跳检测,来确认这些节点当前是否可达。
 
 - 主观下线客观下线:
- 主观下线:
- 当心跳检测超过down-after-milliseconds没有进行有效回复,Sentinel节点会判定该节点下线,所谓主观下线。
 
 - 客观下线:
- 当主观下线的节点是主节点时,该节点会通过sentinel is-master-down-by-addr命令向其他Sentinel节点询问对主节点的判断,当超过<quorum>个数,会做出客观下线的决定。
 
 
 - 主观下线:
 - 领导者Sentinel节点选举:
 
 - 三个定时监控任务:
 
                    
                
                
            
        
浙公网安备 33010602011771号