Redis哨兵模式

2022/2/11 2:13:05

本文主要是介绍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将会成为领导者 做故障转移

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述



这篇关于Redis哨兵模式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程