这样讲Redis哨兵机制Sentinel的工作原理,或许你真的能听懂~
B站搜索“乐哥聊编程“有本篇文章配套视频
什么是哨兵机制
Sentinel是Redis官方提出的一个高可用解决方案。它由一个或多个 sentinel 实例构成 sentinel 系统。
为什么要用哨兵机制?
我们都知道Redis 具备主从复制的功能,但是当主服务器发生故障时,我们需要人工干预,去修改每个实例的配置文件,然后重启,这样不仅费时费力,还有可能导致出错概率比较高,最终导致服务不可用。那么哨兵就是为了解决这个问题,帮助我们自动化实现故障转移,不需要人工干预,高效、精准的实现故障转移。
哨兵机制能做什么?
(1)集群监控,负责监控redis master和slave进程是否正常工作
(2)消息通知,如果某个redis实例有故障,那么哨兵负责发送消息作为报警通知给管理员
(3)故障转移,如果master node挂掉了,会自动转移到slave node上
(4)配置中心,如果故障转移发生了,通知client客户端新的master地址
什么是主观下线和客观下线?
主观下线
当sentinel 系统中其中一个server认为redis中某个实例宕机或不可用,则就标记为主观下线
客观下线
如果被标记主观下线的redis实例是主节点,则还得需要获得其他sentinel节点的判断,如果超过法定的数量的投票认为该redis server不可用,则标记该redis主节点为客观下线
哨兵有哪些定时监控
监控1
哨兵节点每隔10秒向主节点和从节点发送info指令,获取最新的拓扑结构,更新自身保存的节点信息
监控2
每隔2秒哨兵节点向redis指定频道上发送哨兵节点对主节点的判断和哨兵节点自身的信息,其他哨兵节点也会订阅这个频道,来了解其他节点的信息及对主节点的判断
监控3
每隔1秒哨兵向redis 节点和其他哨兵节点发送ping信息,进行心跳检测。
主节点客观下线后,怎么进行故障转移?
这里主要有两步,首先是选举哨兵leader,再由哨兵leader负责故障转移
选举哨兵leader
1)当master 下线后,每个哨兵都可以选择自己作为leader,将请求发送给其它哨兵
2)其它哨兵接收到请求后,可以选择同意或者不同意(根据判定基础决定)
3)如果最终某个哨兵节点获得了超过半数的投票,则该哨兵节点就成为了leader,负责故障转移
故障转移
选举新的master
1)过滤与哨兵断开连接时间比较长的节点
2)优先选择replica-priority低的
3)选择偏移量比较大的(复制的数据越多) 4)运行ID越小
执行故障转移
1)sentinel leader向新主节点发送slave no one命令,让它成为独立节点
2)sentinel leader 向其它从节点发送slave ip port指令,让它从新的主节点同步
client是和哨兵通信还是和Redis 主从通信?
其实都有建立通信,情况是这样的:
1)client连接集群,首先会连接sentinel,然后订阅相关的频道获取主从切换、切换进度、新master地址等信息
2)拿到redis连接地址后,则会与redis master建立连接
3)当sentinel执行了故障转移,选举了新的redis master之后,也会在client订阅的频道中发送最新的master redis 地址
4)client 拿到最新的地址后,还是同样建立新的redis连接。
相关文章
- Redis中主键失效的原理及实现机制剖析
- 探究Redis应用原理:极致速度体验之旅(redis应用原理)
- 极速访问:Redis DB的优势(redis的db)
- Redis存储:应对大数据量的利器(redis存储大数据量)
- 利用Redis进行高效查询:使用hset命令快速查询数据(redis查询hset)
- 提高性能利用Redis集群实现性能提升(用redis集群)
- 展现开发功底测试与Redis面试大攻略(测试开发面试redis)
- 开发新电脑上Redis开发实现专业技能升级(新电脑如何做redis)
- 指定Redis运行环境的配置文件(指定redis的配置文件)
- 保障分布式Redis安全的锁定机制(分布式redis安全锁)
- 深入理解Redis的多线程机制(怎么理解redis多线程)
- 深入查看Redis的缓存机制(怎么查看缓存redis)
- 华硕电脑用Redis重启却崩溃(华硕redis打开闪退)
- 利用Redis默认过期机制轻松节省空间(redis 默认过期机制)
- 研究Redis集群的运行原理(redis集群如何工作的)
- Redis队列从实现原理到实战篇(redis队列的实现原理)
- Redis锁机制升级,优化就在眼前(redis锁机制优化版本)
- Redis重新定义数据库管理机制(redis重新机制)
- Redis安装配置指南(redis配置安装目录)
- 重试机制重拾Redis连接梦(redis 连接重试)
- 复制Redis过期数据的主从复制机制(redis过期主从)
- Redis优化读取性能,减少读数据延迟(redis读数据延迟)
- 使用Redis订阅发布机制实现消息消费完美总结(redis订阅消费总结)