深入浅出Redis高可用:哨兵机制( 三 )


  1. 主节点下线事件:如节点主观下线(+sdown)、客观下线(+odown)等;
  2. 从库更新配置事件:如重新同步(+slave-reconf-sent)、主从同步完成(+slave-reconf-done)等;
  3. 主节点更换:主库地址发生变化(+switch-master) 。
如果客户端订阅了主节点更换的事件 , 就会收到哨兵的通知事件,进而调整自身连接的节点信息 。
 
3.4 节点恢复:老掌门出关,担任副掌门所谓一山不容二虎,哨兵部门在更换掌门后要做的职责是 , 继续监控老掌门的体征信息 。
深入浅出Redis高可用:哨兵机制

文章插图
图片
一当老掌门有消息回复时,哨兵部门就会告诉它 , 现在已经有新掌门人了,老掌门失联这么久,对门派事务的了解难免落后,所以会让它先担任副掌门 。
Redis 中,哨兵集群会向重新上线的旧主节点发送 SLAVEOF 命令,让它成为新主节点的从节点 。
当哨兵集群同步这个事件以后,会接着发布从库更新配置事件的订阅消息,让客户端也知晓 。
 
4. 小结在大型的互联网应用上,Redis 为了保证高可用,会在主从复制的部署架构上进一步引入哨兵机制 。
如果说主从同步是 Redis 高可用的数据保障基础,那哨兵机制就是 Redis 高可用的进阶支撑,有了它,就不用担心 Redis 挂了后得人工升级 , 并且还非常低效的问题了 。
毕竟,乱世江湖 , 门派中一旦群龙无首,就很容易陷入危机 , 导致四分五裂!
接下来我们总结一下,哨兵机制的工作流程:
  1. 监控各节点状态,判断是否下线(千里传音,了解各掌门状态);
  2. 当主节点主观下线以后,选出一个领头哨兵做故障转移(掌门人挂了 , 选一个leader主持掌门更换仪式);
  3. 选出一个从节点,晋升为从节点 , 并发布通知(选出新掌门,向武林同道发布这个消息);
  4. 继续监控 , 如果老节点恢复,就让它作为新主节点的备份从节点(老掌门出关,先给个副掌门当当) 。
而 Redis 精准无误地执行上述流程 , 是通过发布订阅、投票算法等机制做到的,这让系统的高可用进一步得到了保障 。
在派系林立的江湖也这样 , 哨兵部门如果能很好地处理掌门人之间的权力和事务关系,门派发展扩大亦是指日可待!




推荐阅读