redis 哨兵的原理
关于哨兵的原理,关键是了解以下几个概念:
定时任务:每个哨兵节点维护了3个定时任务。定时任务的功能分别如下:通过向主从节点发送info命令获取最新的主从结构;通过发布订阅功能获取其他哨兵节点的信息;通过向其他节点发送ping命令进行心跳检测,判断是否下线。
主观下线:在心跳检测的定时任务中,如果其他节点超过一定时间没有回复,哨兵节点就会将其进行主观下线。顾名思义,主观下线的意思是一个哨兵节点“主观地”判断下线;与主观下线相对应的是客观下线。
客观下线:哨兵节点在对主节点进行主观下线后,会通过sentinel is-master-down-by-addr命令询问其他哨兵节点该主节点的状态;如果判断主节点下线的哨兵数量达到一定数值,则对该主节点进行客观下线。
需要特别注意的是,客观下线是主节点才有的概念;如果从节点和哨兵节点发生故障,被哨兵主观下线后,不会再有后续的客观下线和故障转移操作。
选举领导者哨兵节点:当主节点被判断客观下线以后,各个哨兵节点会进行协商,选举出一个领导者哨兵节点,并由该领导者节点对其进行故障转移操作。
监视该主节点的所有哨兵都有可能被选为领导者,选举使用的算法是Raft算法;Raft算法的基本思路是先到先得:即在一轮选举中,哨兵A向B发送成为领导者的申请,如果B没有同意过其他哨兵,则会同意A成为领导者。选举的具体过程这里不做详细描述,一般来说,哨兵选择的过程很快,谁先完成客观下线,一般就能成为领导者
redis 哨兵的原理相关推荐
- Redis哨兵模式原理
Redis哨兵模式原理 一.哨兵模式 二.配置 三.检测异常(主观下线) 四.客观下线 五.故障转移 六.使用 七.缺点 一.哨兵模式 哨兵模式是Redis可用性的解决方案:它由一个或多个 senti ...
- redis哨兵模式原理_Redis哨兵原理,我忍你很久了
[51CTO.com原创稿件]Redis 主从复制的作用中有这么一句话"主从复制是高可用的基石",那什么是高可用呢?高可用就是减少系统不能提供的时间,也就是常听到的以 6 个 9 ...
- Redis 哨兵模式原理
主从切换技术的方法是:当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费事费力,还会造成一段时间内服务不可用.这不是一种推荐的方式,更多时候,我们优先考虑哨兵模式. 一.哨兵 ...
- Redis——Redis哨兵机制原理
摘要 redis的主从复制是redis系统的高可用前提,从库宕机依然可以将请求发送给主库或者其他从库,但是 Master 宕机,只能响应读操作,写请求无法再执行.所以主从复制架构面临一个严峻问题,主库 ...
- redis哨兵模式原理_Redis的哨兵 (sentinal) 机制的工作原理
什么是哨兵机制? Redis的哨兵(sentinel) 系统用于管理多个 Redis 服务器,该系统执行以下三个任务: 监控(Monitoring): 哨兵(sentinel) 会不断地检查你的Mas ...
- Redis哨兵机制原理详解
一.什么是哨兵模式: 1.哨兵模式的架构: 2.什么是哨兵模式: 在主从模式下(主从模式就是把上图的所有哨兵去掉),master节点负责写请求,然后异步同步给slave节点,从节点负责处理读请求.如果 ...
- Redis哨兵模式原理剖析,监控、选主、通知客户端你懂了吗?
Redis 除了具有非常高的性能之外,还需要保证高可用,在故障发生时,尽可能地降低故障带来的影响,Redis提供了哨兵模式,来进行故障恢复. 哨兵主要负责做三件事: ①监控,监控主.从节点是否正常运行 ...
- Redis系列教程(五):Redis哨兵、复制、集群的设计原理,以及区别
前一篇文章高并发架构系列:Redis为什么是单线程.及高并发快的3大原因详解谈了Redis高并发快的3个原因,本篇主要谈Redis的高可用,两篇合起来就可以把redis的高并发和高可用搞清楚了. 谈到 ...
- Redis的高可用详解:Redis哨兵、复制、集群的设计原理,以及区别
谈到Redis服务器的高可用,如何保证备份的机器是原始服务器的完整备份呢?这时候就需要哨兵和复制. 哨兵(Sentinel):可以管理多个Redis服务器,它提供了监控,提醒以及自动的故障转移的功能. ...
- Redis哨兵模式(原理剖析)
Redis哨兵模式(原理剖析) 前言 一.Sentinel模式概述 二.配置哨兵模式 1.哨兵配置 1.1 优点: 1.2 缺点: 总结 前言 在Redis中主从复制解决高可用的方案是:当主节点服务器 ...
最新文章
- 一次防CC***案例
- VC2005中依然没有Refactoring和Code Expansion.
- ECC-based 算法(ECDSA/ECDH) 新潮算法的原理
- linux安装icc步骤,怎麼安装不到 icc?
- 工程设计论——如何写好工程代码
- 漫步最优化四十——Powell法(上)
- 485通信c语言编程linux,485通讯问题(C语言)
- 写给嵌入式方向的某些同学 - 基于WINCE系统的程序开发[不完整版]
- 分布式场景下数据一致性的问题——【分布式锁】 Java常用技术方案
- Linux服务器上安装node.js
- nodejs+socket.io用nginx反向代理提示400 Bad Request及ws://…无法连接的解决方法
- 高中学业水平测试计算机考试知识点,高中生物学业水平测试知识点归纳
- 使用PicGo和阿里云OSS建立云图床
- 惠普台式计算机耳机插口,惠普耳机插在台式电脑上没声音,为什么
- FineReport 填报报表数据自定义提交
- CentOS操作系统安装BT宝塔面板
- HTML5文件选择框(各种类型)
- echarts tree (树图) 实现自定义节点图标 自定义样式 点击节点后线条变色 自适应高度 搜索后节点关键字标红 写的很详细,建议收藏!
- 解决Windows提示缺少mfc140.dll文件的问题
- python中tan怎么表示_Python numpy.tan()用法及代码示例