csdn推荐
关键字
+sdown表示哨兵主观认为主数据库停止服务了
+odown则表示哨兵客观认为主数据库停止服务了
+try-failover表示哨兵开始进行故障恢复
+failover-end表示哨兵完成故障恢复
+switch-master表示主数据库从6379端口迁移到6380端口,即6380端口的从数据库被升格为主数据库,同时两个+slave则列出了新的主数据库的两个从数据库,端口号分别为6381和6379
-sdown表示实例6379端口已经恢复服务了(与+sdown相反)
同时+convert-to- slave表示将6379端口的实例设置为6380端口实例的从数据库。
Redis主从哨兵架构的故障转移(failover)过程
以下是对日志文件中关键步骤的概述:
1. Redis Sentinel 启动
所有哨兵实例在启动时记录了Redis的版本信息、运行模式(sentinel)、监听端口等信息。
2. 监控主节点
哨兵进程开始监控主节点(master),并记录了主节点的IP地址和端口。
3. 记录从节点和哨兵节点
哨兵进程监测到从节点(slave)和其它哨兵节点(sentinel),并记录它们的信息。
4. 主节点下线
在某个时间点(例如:22 May 2024 00:38:25),哨兵检测到主节点下线(sdown),这可能是由于网络问题或主节点故障。
5. 触发故障转移
当主节点被判断为客观下线(odown),并且达到预设的法定人数(quorum)时,哨兵会触发故障转移过程。
6. 选举领导者
哨兵之间会进行领导者选举,选出一个哨兵来执行故障转移操作。
7. 选择新的主节点
领导者哨兵会选择一个从节点来提升为新的主节点。通常选择的是从节点中复制数据最新且响应最快的节点。
8. 故障转移状态
领导者哨兵将进入故障转移的不同状态,包括发送命令使选定的从节点不再作为从节点(slaveof no one),等待该节点提升为主节点。
9. 从节点提升为主节点
一旦从节点接收到提升命令并成功提升为主节点,它会开始接受写入操作。
10. 更新配置
领导者哨兵会更新其他哨兵和从节点的配置,让它们知道新的主节点地址。
11. 故障转移完成
一旦所有从节点都被重新配置为指向新的主节点,故障转移过程完成。
12. 从节点下线
在故障转移过程中,旧的主节点和其他从节点可能会被标记为主观下线(sdown),并在之后被确认为客观下线。
13. 重新上线
当旧的主节点重新上线时,它会被重新配置为新的主节点的从节点。
14. 哨兵地址切换
在故障转移过程中,哨兵可能会更新自己的地址信息,以确保它们能够相互通信并监控新的主节点。
结论
通过哨兵的监控和故障转移机制,Redis主从架构能够在主节点发生故障时自动进行故障恢复,确保服务的高可用性。这个过程涉及到多个哨兵节点之间的协作,以及对主从节点状态的持续监控和更新。
文章来源:https://blog.csdn.net/hezuijiudexiaobai/article/details/139148324
微信扫描下方的二维码阅读本文
暂无评论内容