Redis主从哨兵架构的故障转移

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



微信扫描下方的二维码阅读本文

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容