微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Redis哨兵模式

Redis高可用

第一种: 哨兵模式
第二种: 集群

哨兵模式

哨兵,顾名思义,放哨的,监控一些动态 Redis中的哨兵模式也是监控,不过哨兵是一个进程,运行在系统中,通过发送指令监控主从节点是否正常运作,当然除了键控之外,还可以只从自动切换等功能

单哨兵模式

在这里插入图片描述

多哨兵模式

在这里插入图片描述

哨兵模式内部原理

哨兵模式内部是依赖三个定时任务, 主观下线,客观下线 和sentinel Reft选举的
一个定时任务
问题描述: 因为我们并没有在哨兵配置文件中配置从节点的信息,哨兵会把从节点切换成主节点,那么哨兵是如何知道从节点的信息的?
定时任务: 每隔10秒,每个Sentinel节点会向主节点发送info命令,用于获取最新的主从结构一级从节点信息
第二个定时任务
每隔两秒,每个sentinel都会向一个固定的频道(sentinel:hello) 上发送自己对主节点的判断以及自身的信息
其他的sentinel节点都会订阅这个频道,了解其他的sentinel节点对主节点的判断
第三个定时任务
每隔一秒,每个sentinel都会向主从节点和其他sentinel节点发送心跳(ping命令)用于彼此监测是否可用
主观下线 看图
客观下线 同上

Raft算法
问题说明: 当宕机的主节点被客观下线之后,从节点会变成主节点,那么是谁让从节点变成主节点的呢? 此时有多个 sentinel到底谁说了算 此时sentinel会选举出一个领导者leader
选举流程: 当sentinel-A 对主节点主观下线之后,会向其他sentinel节点发送sentinel is-master-down-by-addr 命令,要求将自己设置为领导者
每个节点在每个选举轮次中只有一次投票权,接收到这个指令之后,节点将会给sentinel-A投票 同意这个,sentinel-A 成为领导者
如果sentinel-A的票数最高 则sentinel-A将会成为领导者 做故障转移

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐